这个 这个是JSONArray
[[
{
"Type": 4,
"Name": "ExecID"
},
{
"Type": 4,
"Name": "TaskID"
},
],[
{
"Value": "123"
},
{
"Value": "456"
},
]]
变这样这样
[
{
"ExecID": "123",
"TaskID": "456",
}
]
你这个键值都是两个json没有关联关系,怎么变,强行变啊
解析出来两个集合,然后遍历第一个集合取出TaskID,根据索引下标取第二个,前提是你两个数组里的数据是有序且一一对应的
List<Task> tasks =
List<Value> values =
for(int i = 0;i<tasks.size();i++){
String taskId = tasks.get(i).getName();
String value = values.get(i).getValue();
// 然后组对象
}
String jsonArrayStr = " [[{ \"Type\": 4, \"Name\": \"ExecID\"},{ \"Type\": 4, \"Name\": \"TaskID\"}],[{ \"Value\":\"123\"},{ \"Value\": \"456\" }]]";
JSONArray jsonArray = JSON.parseArray(jsonArrayStr);
JSONArray jsonNameArray = (JSONArray) jsonArray.get(0);
JSONArray jsonValueArray = (JSONArray) jsonArray.get(1);
List<JSONObject> objects = new ArrayList<>();
for (int i = 0; i < jsonNameArray.size(); i++) {
JSONObject object = new JSONObject();
JSONObject jsonName = (JSONObject) jsonNameArray.get(i);
JSONObject jsonValue= (JSONObject) jsonValueArray.get(i);
String name = (String) jsonName.get("Name");
String value = (String) jsonValue.get("Value");
object.put(name,value);
objects.add(object);
}
System.out.println(JSONObject.toJSONString(objects));