将Java JsonPath作为json字符串返回

时间:2017-09-15 21:43:58

标签: java json jsonpath

使用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

1 个答案:

答案 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`