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

时间:2016-03-02 09:58:07

标签: java jsonpath

我目前有以下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获取预期结果(删除字符串的第一个和最后一个字符),因为查看代码会更麻烦?

3 个答案:

答案 0 :(得分:7)

由于内容为array," content.uuid"返回一个字符串列表。但是,当我们调用getString()方法时,该列表将转换为String(使用toString()),因此我们得到[123132]

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

答案 1 :(得分:1)

jsonPath的返回值是一个数组,它也是一个有效的JSON结构。如果您需要将数据作为其他类型,例如在这种情况下,你必须自己进行转换,获得你的价值#

检查此page以获取样本及其返回数组的原因。

答案 2 :(得分:0)

你有没有试过google.simple.Json Jar?这个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"));
          ..........
          ..........
     }
  

获取Maven JSON Simple MavenDirect Jar File