使用java json路径库:https://github.com/json-path/JsonPath
给出像这样的json
{
"store": {
"book": [
{
"category": "reference"
},
{
"category": "fiction"
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
},
"expensive": 10
}
我想回复"预订"作为字符串列表。例如:
List<String> results = JsonPath.read(example, "$.store.book[*]");
结果应如下所示:
["{\"category\":\"reference\"}", "{\"category\":\"fiction\"}"]
有没有办法实现这个目标?
目前:
System.out.println(udf.jsonExtractScalar(testExample, "$.store.book[*]").getClass().getName());
--> net.minidev.json.JSONArray
答案 0 :(得分:0)
由于book是json树中的JsonArray,您可以使用JsonArray类型并从中检索数据并添加到列表中。
这是一个例子。
JSONArray jsonArray = new JSONArray(jsonArrayString);
List<String> list = new ArrayList<String>();
for (int i=0; i<jsonArray.length(); i++) {
list.add( jsonArray.getString(i) );
将jsonArrayString替换为jsondata的书籍阵列名称,你将会很高兴。
使用的类是JSONArray类,它是
`org.json.JSONArray`