需求:数据库里面的一个字段,存的是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