记录一次json转换的经历

  需求:数据库里面的一个字段,存的是json数据,类似{‘name’:“name1”,'items':“[{code:0,name:'name2'}]”},{‘name’:“name3”,'items':“[{code:0,name:'name4'}]”}  这样的数据格式。 想要修改json的第一个items的code值。可以通过下面的方式:

  

 1  //response为json格式的字符串
 2  String arrRes = "[" + response + "]";
 3 //转化为net.sf.json
 4             net.sf.json.JSONArray arrayRes = net.sf.json.JSONArray.fromObject(arrRes);
 5 //获取第一个
 6             String firstRes =  arrayRes.getJSONObject(0).toString();
 7 //通过alibaba fastJson  转化          
 8 JSONObject json = JSON.parseObject(firstRes);
 9      
10              //获取items的值
11             JSONArray jsonArray = json.getJSONArray("items");
12             if (jsonArray != null && jsonArray.size() > 0){
13                 JSONObject beforeJson = (JSONObject) jsonArray.get(0);
14           //重新赋值
15                 beforeJson.put("code",3);
16    //转化后新的值                
17 String afterResponse = JSON.toJSONString(json);
18           
19             }

  大概思路是:先通过net.sf.json转化后,将其第一个json格式转化为String,之后通过alibaba的fastjson转化为JSONArray后,通过json.put方式修改。之后在通过JSON.toJSONString()方法转化为String

原文地址:https://www.cnblogs.com/thinkingandworkinghard/p/8818657.html