目前有一个json数据,但我想要的是这个json里的的某段数据。现将该json中的想要的数据提取出来构造新map,但map中的value依然需要分割出来才能得出目标值,我尝试重复上面操作却无法成功运行。
data 为获取的数据 json格式
JsonParser parser =new JsonParser();
JsonObject json=(JsonObject)parser.parse(data); //json将data的中的数据拿到手
String needkey=null;
needkey=json.get("needkey").getAsString(); //needkey为需要的value值的key
Map<String,Object>map=JsonObject.ParseObject(needkey.toString(),new TypeReference<Map<String,Object>>(){}); 将key‘needkey’的value作为新的map
for(Map.Entry<String,Object>entry:map.entrySet()){
String mapkey=entry.getKey();
String mapvalue=entry.getValue();
System.out.println(mapkey+" : "+mapvalue);
}
这里已经获得了我想要的值的一部分但仍有部分需要数据在map中的某个值里。请问我该如何将其分离出来?
最后将这两段数据变成一个新的map 返回该map
这是目前map的结构
map :key1 needvalue1
key2 (不需要的数据+needvalue2+不需要的数据+needvalue3)
我想要的输出结果是
mapnew: needvalue1(作为key) needvalue2+needvalue3 (作为value)
都在map里面,不方便提取吗?
json原数据是什么样的。
那你这个问题的实际目的就是
不需要的数据+needvalue2+不需要的数据+needvalue3 -> needvalue2 + needvalue3 的转化方法咯?
1、如果你的needvalue不重复,或者位置固定的,直接用字符串处理提取出来
2、如果你的needvalue会有重复,那你就需要整理下规律,然后根据规律提取出来。
代码不是万能的,还是得根据一定的处理逻辑才能实现对应的效果
//假设
arr= [{
"Name": "height",
"uset": "user1",
"value": "175"
}]
//想要把这个height和175拿出来,那就是arr[0].Name,和arr[0].value就可以了
var map = {};
map["Name"] = arr[0].Name;
map["value"] = arr[0].value;