簡體   English   中英

Java JsonPath數組的長度

[英]Java JsonPath length of array

我有一個像這樣的傑森:

{
    "hello": {
        "hello": [
            {
                "wwrjgn": "aerg",
                "aaa": "gggg",
                "rfshs": {
                    "segse": "segsegs",
                    "xx": "rgwgwgw",
                    "x-e ": "eergye"
                },
                "egg": "sgsese",
                "segess": "sgeses",
                "segess": "segess"
            },
            {
                "esges": "segesse",
                "segesg": "ws",
                "rddgdr": {
                    "rdrdrdg": “srgsesees"
                },
                "drr": 3600,
                "esese": "uytk",
                "wew": "699",
                "eses": “qe4ty"
            }
        ],
        "how": www"
    }
}

我執行以下操作:

Object document = 
Configuration.defaultConfiguration().addOptions().jsonProvider()
            .parse(ka.toJSONString());
int queries = JsonPath.read(document, "$..hello.length()");

    System.out.println("THE LENGTH OF THE NUMBER OF QUERIES " + queries);

我得到:

nested exception is java.lang.ClassCastException: net.minidev.json.JSONArray 
cannot be cast to java.base/java.lang.Integer] with root cause
java.lang.ClassCastException: net.minidev.json.JSONArray cannot be cast to 
java.base/java.lang.Integer

在這里嘗試: http ://jsonpath.herokuapp.com/?path= $ .. hello.length()我得到:

[
   2,
   2
]

這就是我所需要的。

知道我在做什么錯嗎? 提前致謝。

這個 ...

JsonPath.read(document, "$..hello.length()")

...將其響應轉換為net.minidev.json.JSONArray的實例,該實例無法轉換為int 這解釋了ClassCastException

你看到的原因...

[
   2,
   2
]

...嘗試在線評估程序時,這是JSONArray實例的toString()返回該String的方法。

要獲取代碼中的“查詢長度”,只需將JsonPath輸出作為JSONArray讀取,然后獲取該類型的size屬性。 例如:

JSONArray read = JsonPath.read(document, "$..hello.length()");
// prints:
//    THE LENGTH OF THE NUMBER OF QUERIES 2
System.out.println("THE LENGTH OF THE NUMBER OF QUERIES " + read.size());

您還可以返回List<Integer ,例如:

List<Integer> read = JsonPath.read(document, "$..hello.length()");
// prints:
//    THE LENGTH OF THE NUMBER OF QUERIES 2
System.out.println("THE LENGTH OF THE NUMBER OF QUERIES " + read.size());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM