-
JSONArray.fromObject转换float类型的问题10
我用JSONArray.fromObject转换一个float类型时,比如定义一个float f = 0.1f
JSONArray array = JSONArray.fromObject(f)
array.toString后打印出来的是[0.10000000149011612]
怎么回事,怎样解决?
等!2011年11月17日 11:02
3个答案 按时间排序 按投票排序
-
采纳的答案
楼主可以专门写个float类型的出来方法,然后注册到JSON配置器中,具体如下,
import java.math.RoundingMode; import java.text.NumberFormat; import java.util.Locale; import net.sf.json.JsonConfig; import net.sf.json.processors.JsonValueProcessor; class FloatJsonValueProcessor implements JsonValueProcessor { public FloatJsonValueProcessor() { } /** * 处理数组类型 */ public Object processArrayValue(Object value, JsonConfig jsonConfig) { if (value instanceof float[]) { String[] obj = {}; float[] nums = (float[]) value; for (int i = 0; i < nums.length; i++) { obj[i] = roundHalfUp(nums[i], 3); } return obj; } return value; } /** * 处理单个对象 */ public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) { if (value instanceof Float) { return roundHalfUp((Float)value, 3); } return value; } /** * 四舍五入。 * * @param number 数值 * @return 舍入后的数值 * @see java.text.RoundingMode.HALF_UP */ public String roundHalfUp(double number, int frac) { NumberFormat fmt = NumberFormat.getInstance(Locale.CHINA); fmt.setMaximumFractionDigits(frac); fmt.setRoundingMode(RoundingMode.HALF_UP); return fmt.format(number); } }
然后注册处理器:
JsonConfig jsonConfig = new JsonConfig(); jsonConfig.registerJsonValueProcessor(Float.class, new FloatJsonValueProcessor()); float f = 0.1f; JSONArray array = JSONArray.fromObject(f,jsonConfig);
2011年11月17日 12:47
-
因为你用的浮点型,在转换为json的时候会读取一个浮点字,大概在16位。你使用float f = 0.1,试试,不加f后缀、
2011年11月17日 11:31
相关推荐
使用JSONArray.fromObject所需要的jar包,不使用的话会导致JSONArray.fromObject方法报错
关于使用JSONArray.fromObject()方法和引入net.sf.json包所需要的依赖包:commons-beanutils.jar,commons-httpclient.jar,commons-lang.jar,ezmorph.jar,morph-1.0.1.jar
使用jsonArray.fromObject转json必须导入五个jar, 包含:commons-lang.jar commons-beanutils.jar commons-collections.jar commons-logging.jar ezmorph.jar json-lib-2.2.2-jdk15.jar
JSONArray jsonArray2 =JSONArray.fromObject( list ); 2. Map集合转换成json代码 Map map = newHashMap(); map.put("name","json"); map.put("bool",Boolean.TRUE); map.put("int", newInteger(1)); map.put...
JSONArray解析包,JSONArray.fromObject使用,可以解析map,list等
包含 json-lib-2.4-jdk15.jar , ezmorph-1.0.6.jar commons-logging-1.2.jar commons-lang-2.5.jar commons-collections-3.2.jar commons-beanutils-1.8.0.jar
JSONArray jsonArray = JSONArray.fromObject( boolArray ); System.out.println( jsonArray ); // prints [true,false,true] } //Collection对象转换成JSON @Test public void testListToJSON(){ ...
JSONArray jsonArray = JSONArray.fromObject(jsonString, jsonConfig); JSONObject jsonObject; Object pojoValue; List<T> list = new ArrayList(); for (int i = 0; i < jsonArray.size(); i++) { ...
JSONObject jsonobj=JSONObject.fromObject(resultData);//将字符串转化成json对象 JSONArray jsonArray = jsonobj.getJSONArray("data");//获取数组 List< PubUnit> pubUnits = new ArrayList(); for (int i = ...
fastjson-1.2.28 ,
JSONObject与JSONArray使用中所需要的完全jar包整理、需要依赖的包:commons-lang.jar commons-beanutils.jar commons-collections.jar commons-logging.jar ezmorph.jar json-lib-2.2.2-jdk15.jar...
JSONArray jsonArray = JSONArray.fromObject(obj); json = jsonArray.toString(); } else { JSONObject jsonObject = JSONObject.fromObject(obj); json = jsonObject.toString(); } System.out.println...
JSONArray的使用 附带程序注释与输出
JSONArray array = JSONArray.fromObject(jsonString); arrObj = new Object[array.size()]; for (int i = 0; i < array.size(); i++) { JSONObject jsonObject = array.getJSONObject(i); arrObj...
java处理json字符串所使用的jar...JSONArray ja=JSONArray.fromObject(joa.get("a")); for(int i=0;i<ja.size();i++){ JSONObject o=ja.getJSONObject(i); if(o.get("b1")!=null){ System.out.println(o.get("b1")); }
JSONArray 给想要的人 总共六个jar,目前还可以使用,目前还可以使用,目前还可以使用,目前还可以使用
解决JsonObject.fromObject方法,和转换List,String>> 型数据的JsonArray.fromObject()方法
JSONArray jsonArray = JSONArray.fromObject(boolArray); System.out.println(jsonArray); // prints [true,false,true] } public void list2json() { List list = new ArrayList(); list.add(...
java对象转json所需要的包 解决JSONObject.fromObject()和JSONArray.fromObject()报 java.lang.NoClassDefFoundError的问题。 导入jar包后请 import net.sf.json.JSONArray; import net.sf.json.JSONObject;
jsonhelper 工具类 // 将数组转换成JSON public static String array2json(Object object) { JSONArray jsonArray = JSONArray.fromObject(object); return jsonArray.toString(); }