JSON转换大全

1. toJSONString (对象或集合)(内套集合也可以)转JSON对象

JSONObject json = new JSONObject();
json.toJSONString(user

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类型

Map:

8. 【Demo之一在:E:\peixun\Java web\javawebProjectSet\2052\1SpringBoot\boot07-solrj的config包下的Json.java类,[在js,jq中用eval将json字符串转为json对象取值的演示在templates文件夹下的index.html中,您还可以在其中回顾js,jq]。】

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


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值