分别取出来,在封装成json啊
如果不想创建model 只是想用json: String json = "{\"result\":[{\"value\":\"1\",\"key\":\"1\"},{\"value\":\"1\",\"key\":\"1\"},{\"value\":\"2\",\"key\":\"2\"}]}";
JSONObject jsonO = JSONObject.fromObject(json);
JSONObject result = new JSONObject();
jsonO.getJSONArray("result").forEach(k -> {
JSONObject one = (JSONObject)k;
StringBuilder key = new StringBuilder("result");
key.append(one.get("key"));
if(!result.containsKey(key.toString())){
result.put(key.toString(), new JSONObject());
result.getJSONObject(key.toString()).put(key.toString(),new JSONArray());
}
result.getJSONObject(key.toString()).getJSONArray(key.toString()).add(one);
});
result.forEach((k,v) -> {
System.out.println(v);
});
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
我用的是这个架包
fastjson-1.2.4.jar
先把json架包导入到你的项目中!
String str = "{\"result\":[{\"value\":\"1\",\"key\":\"1\"},"
+ "{\"value\":\"1\",\"key\":\"1\"},"
+ "{\"value\":\"2\",\"key\":\"2\"}]}";
JSONObject object = JSONObject.parseObject(str);
System.out.println(object.getString("result"));
JSONArray jsonArray = JSONArray.parseArray(object.getString("result"));
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = JSONObject.parseObject(jsonArray.getString(i));
System.out.println(i+" = "+jsonObject.getString("value"));
System.out.println(i+" = "+jsonObject.getString("key"));
}
输出结果:
[{"value":"1","key":"1"},{"value":"1","key":"1"},{"value":"2","key":"2"}]
0 = 1
0 = 1
1 = 1
1 = 1
2 = 2
2 = 2