Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从JsonPath提取动态密钥_Java_Json - Fatal编程技术网

Java 从JsonPath提取动态密钥

Java 从JsonPath提取动态密钥,java,json,Java,Json,这是我的api“响应”,它的类型是JsonPath { "random": { "5756cd7a-4662-4428-9b09-dbff3080450a": { "@class": "one", "id": "5756cd7a-4662-4428-9b09-dbff3080450a" }, "857ef5ee-af98-4f24-89fe-29bdbebde882": { "@class": "two", "id": "

这是我的api“响应”,它的类型是JsonPath

{
"random": {
   "5756cd7a-4662-4428-9b09-dbff3080450a": {
       "@class": "one",
       "id": "5756cd7a-4662-4428-9b09-dbff3080450a"
   },
   "857ef5ee-af98-4f24-89fe-29bdbebde882": {
       "@class": "two",
       "id": "857ef5ee-af98-4f24-89fe-29bdbebde882"
   }
 }
}

关于如何提取第一个随机元素,我一直很困惑。

通过查看文档,也许您可以使用来进行提取,例如:

String random = response.getString("random");

尽管我对这个
JsonPath
库不是很熟悉,所以可能没那么容易。

假设您的json响应是responseJsonString中的字符串,下面的代码可能会解决您的问题

public class RandomObject {
    private String klass; // N.B. Not sure how to deal with @class naming
    private String id;

    // ... constructor/setters/getters etc...
}
List randomIDS=JsonPath.read(responseJsonString,“$.random..id”);
集合。反向(随机ID);
用于(字符串randomID:randomID){
StringBuilder StringBuilder=新StringBuilder(“$.random”);
字符串randomClass=JsonPath.read(
响应字符串,
stringBuilder.append(randomID.append(“.@class”).toString());
System.out.println(随机类);
}

这不是有效的JSON
public class RandomObject {
    private String klass; // N.B. Not sure how to deal with @class naming
    private String id;

    // ... constructor/setters/getters etc...
}
    List<String> randomIDS = JsonPath.read(responseJsonString, "$.random..id");
    Collections.reverse(randomIDS);

    for (String randomID : randomIDS) {
        StringBuilder stringBuilder = new StringBuilder("$.random.");
        String randomClass = JsonPath.read(
                responseJsonString, 
                stringBuilder.append(randomID).append(".@class").toString());
        System.out.println(randomClass);
    }