从JSON路径/点表示法和java中的值的映射创建JSON



我有一个json路径及其相关值的映射。我想使用这个路径键创建json,并在末尾附加值。类似于输入的东西:

{key: "name1.name2.name3", value: "value1"},
{key:"name1.name2.name4", value: "value2"},
{key:"name1.name5[0]", value: "value3"},
{key:"name1.name5[1]", value: "value4"}

输出为:

{"name1":
{"name2":
{"name3":"value1",
"name4":"value2"
}
},
"name5":["value3","value4"]
}

也可以有一个列表。有什么图书馆我可以用吗?

从@amantsingh实现了注释。https://github.com/wnameless/json-flattener

Maven依赖项:

<dependency>
<groupId>com.github.wnameless.json</groupId>
<artifactId>json-flattener</artifactId>
<version>0.13.0</version>
</dependency>

测试:

Map<String,String> map = new HashMap<>();
map.put("name1.name2.name3", "value1");
map.put("name1.name2.name4", "value2");
map.put("name1.name5[0]", "value3");
map.put("name1.name5[1]", "value4");
System.out.println(map);
String unflatten = JsonUnflattener.unflatten(map);
System.out.println(unflatten);

输出:

{name1.name5[1]=value4, name1.name5[0]=value3, name1.name2.name3=value1, name1.name2.name4=value2}
{"name1":{"name5":["value3","value4"],"name2":{"name3":"value1","name4":"value2"}}}

很久以前,在一家很远的公司,我使用了apache OGNL库,它可以做这样的事情。这是链接:OGNL。但是,今天大多数JSON解析都是用Jackson或Gson库完成的。也可以在谷歌中快速搜索";apache jsonpath库";提供了一些不错的链接。看看这个:JSONPath-Apache Camel

最新更新