大家好,欢迎来到IT知识分享网。
1. toJSONString (对象或集合)(内套集合也可以)转JSON对象
2. JSON格式字符串与JSON对象之间的转换。
String j = “{\”goodslist\”:[{\”goods_id\”:1}],\”name\”:\”张三\”}”;
JSONObject jsonObject = JSONObject.parseObject(j);
或者
JSONObject jsonObject = JSON.parseObject(j);
3. json字符串-数组类型与JSONArray之间的转换
//json字符串-数组类型
private static final String JSON_ARRAY_STR = “[{\”studentName\”:\”lily\”,\”studentAge\”:12},{\”studentName\”:\”lucy\”,\”studentAge\”:15}]”;
JSONArray jsonArray = JSON.parseArray(JSON_ARRAY_STR);
4. 复杂json格式字符串与JSONObject之间的转换
JSONObject jsonObject = JSON.parseObject(j);
5. json字符串转JAVA对象
User user = JSON.parseObject(jsonString, new TypeReference<User>() {} );
或
User user = JSON.parseObject(jsonString, User.class);
6. java对象 须先转json字符串后 才能转为json对象
Object obj = jsonArray.get(0);
String ob = JSON.toJSONString(obj);//java对象 须先转json字符串后 才能转为json对象
JSONObject o = JSON.parseObject(ob);
NoUser noUser = JSON.toJavaObject(jsonObject,NoUser.class);//[把json对象转为java对象]
Binding binding = JSON.parseObject(msgJson.toString(), Binding.class);
Binding binding1 =JSON.toJavaObject(msgJson,Binding.class);
BObject = JSON.toJavaObject(JSON.parseObject(AObject .toString()),BObject .class);
7. json字符串集合(jsonArray) 转LIST对象、Map
List:
String str = "[{\"goods_id\":1},{\"goods_id\":2}]"; List<Goods> goodslist = JSON.parseObject(str,new TypeReference<ArrayList<Goods>>(){}); 例子: JSONArray content_ = jsonObj.getJSONArray("Content"); List<TableNameColumnDataObj> contentList = Lists.newArrayList(); for (int i = 0; i < content_.size(); i++) { JSONObject j = JSONObject.parseObject(content_.get(i).toString()); String tableName = j.getString("TableName");//表名 JSONArray jsonArray = j.getJSONArray("ColumnData"); 【List<FiledNameFiledValueObj> columnDataList = JSON.parseObject(jsonArray.toJSONString(), new TypeReference<ArrayList<FiledNameFiledValueObj>>() { });//[[jsonArray转为javaList]]】 TableNameColumnDataObj t = new TableNameColumnDataObj(); t.setTableName(tableName); t.setColumnData(columnDataList); contentList.add(t); } 例子: @RequestMapping(value = "/delMember", method = RequestMethod.POST) @ResponseBody public boolean delMember(@RequestBody JSONObject param) { if(param == null || param.getJSONArray("idList")==null){ return false; } 【List<Integer> idList = param.getJSONArray("idList").toJavaList(Integer.class);】 或者 List<PriorityModel> priorityModels = JSONArray.parseArray(entry.getValue(), PriorityModel.class); //entry.getValue()是String类型
9.//[JSONObject属性的排序]
String str = JSONObject.toJSONString(jsonObject, SerializerFeature.SortField.MapSortField);//【SerializerFeature.SortField.MapSortField】
或
JSONObject jsonobj = new JSONObject(true);
JSONObject内部是用Hashmap来存储的,所以输出是按key的ASCII码排序来的,如果要让JSONObject按固定顺序(put的顺序)排列,可以修改JSONObject的定义HashMap改为LinkedHashMap。
即定义JSONObject可以这样:JSONObject jsonObj = new JSONObject(new LinkedHashMap());或者 JSONObject jsonObj = new JSONObject(true);
JSON.toJSONString时保留null值
亲测:字符串提前保留为空串,数字为0 WriteMapNullValue WriteNullStringAsEmpty WriteNullNumberAsZero 这3个同时使用
从输出结果可以看出,null对应的key已经被过滤掉;这明显不是我们想要的结果,这时我们就需要用到fastjson的SerializerFeature序列化属性
也就是这个方法:JSONObject.toJSONString(Object object, SerializerFeature… features)
Fastjson的SerializerFeature序列化属性
QuoteFieldNames———-输出key时是否使用双引号,默认为true
WriteMapNullValue——–是否输出值为null的字段,默认为false
WriteNullNumberAsZero—-数值字段如果为null,输出为0,而非null
WriteNullListAsEmpty—–List字段如果为null,输出为[],而非null
WriteNullStringAsEmpty—字符类型字段如果为null,输出为”“,而非null
WriteNullBooleanAsFalse–Boolean字段如果为null,输出为false,而非null
具体使用方式
private static final SerializerFeature[] serializerFeatures; //... static { serializerFeatures = new SerializerFeature[] { SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullListAsEmpty }; } JSON.toJSONString(msgMap, serializerFeatures)
JAVA控制台格式化输出json字符串
//【alibaba的json】
JSONObject jsonObjec = JSON.parseObject(string);
String pretty = JSON.toJSONString(jsonObjec, SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue,
SerializerFeature.WriteDateUseDateFormat);
System.out.println(jsonObjec.toString());
System.out.println(pretty);
//【google的json】
String pretty = toPrettyFormat(jsonString);
//原文链接:https://www.cnblogs.com/shoufeng/p/11196500.html
Java的map 转 fastjson的JSON对象
JSONObject.toJSONString(shouQuanFailureMap);
map必须<String,Object>
List<PriorityModel> value = entry.getValue(); String s = JSONArray.toJSONString(value); //这样对List进行toString不会包含多余的空格 [{"level":1,"ruleTableField":"User Name","ruleTableName":"person","touchPointCode":8},{"level":1,"ruleTableField":"Birthdate","ruleTableName":"person","touchPointCode":8},{"level":1,"ruleTableField":"Gender","ruleTableName":"person","touchPointCode":8},{"level":1,"ruleTableField":"Country","ruleTableName":"person","touchPointCode":8},{"level":1,"ruleTableField":"Province","ruleTableName":"person","touchPointCode":8},{"level":1,"ruleTableField":"City","ruleTableName":"person","touchPointCode":8}]
@JsonFormat、@JsonInclude、@DateTimeFormat
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/112381.html

