从 Java 中的 JSONPATH 获取字符串字段

Getting String Field from JSONPATH in Java

我目前有以下JSON:

{"content":
    [{"uuid":"123132",
    "firstname" : "Jon",
    "lastname" : "Deer"
     ...
     }
    ]
}

我想做的是使用 Java 来获取 "uuid" 的字符串值。以下是我的代码:

JSONPATH jsonPath = new JSONPATH(json);
String myString = jsonPath.getString("content.uuid");
System.out.println(myString);

结果字符串:[123132] 预期的字符串:123132

是否有另一种方法可以使用 JSONPATH 而不使用子字符串(删除字符串的第一个和最后一个字符)来获得预期结果,因为查看代码有点混乱?

Return jsonPath的值是一个数组,也是一个有效的JSON结构。如果您需要其他类型的数据,例如在这种情况下是一个字符串,你必须自己进行转换以获得你的值#

检查这个 page 示例以及为什么它是 returns 数组。

由于内容是 array、"content.uuid" returns 字符串列表。然而,当我们调用 getString() 方法时,该列表被转换为字符串(使用 toString()),因此,我们得到 [123132] 作为结果。

获得第一个值的正确方法是jsonPath.getString("content[0].uuid");

你试过google.simple.Json罐子吗?这个 Jar 可以很容易地让你轻松地阅读这个 JSONObject。

                       {
                         "content":
                           [{"uuid":"123132",
obj_ComplexJson ==>          "firstname" : "Jon",
                             "lastname" : "Deer"
                              ...
                            }],[],[],[]
                        }
 JSONObject obj_ComplexJson = "{"content":[{}]}""; //this json object contains your Actual Object.
JSONParser parser = new Parser();
JSONArray obj_arr = (JSONArray)parser.parse(obj_ComplexJson.get("content"));
 for(JSONObject eachObj : obj_arr){
         System.out.println(eachObj.get("uuid"));
          ..........
          ..........
     }

Get Maven JSON Simple Maven or Direct Jar File