JSON转换大全

JSON转换大全1 toJSONString 对象或集合 内套集合也可以 转 JSON 对象 JSONObjectjs newJSONObjec json toJSONString user 2 JSON 格式字符串与 JSON 对

大家好,欢迎来到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>

 JSON转换大全


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

JSON转换大全


免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/112381.html

(0)
上一篇 2026-01-18 18:45
下一篇 2026-01-18 19:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信