2016-03-02 43 views
1

目前,我有以下JSON:從JSONPATH獲取字符串字段中的Java

{"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不使用字符串(預期結果除去第一和最後一個字符串的字符),因爲查看代碼有點麻煩?

回答

7

由於內容爲array,「content.uuid」返回一個字符串列表。但是,由於我們調用getString()方法,該列表將轉換爲字符串(使用toString()),因此我們得到的結果爲[123132]

正確的方式來獲得的第一個值是jsonPath.getString("content[0].uuid");

+0

而且我們應該怎樣做,如果我們想從jsonPath得到整個字符串?當我們使用jsonPath.getString(「$」)時,我們得到根對象內的所有對象。但是我們想要整個根對象。 – alxbxbx

1

jsonPath的返回值是一個數組,它也是一個有效的JSON結構。如果您需要其他類型的數據,例如在這種情況下一個字符串,你將不得不做的轉換自己得到你的價值#

檢查這個page樣本,爲什麼它返回數組。

0

具有u曾經試圖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")); 
      .......... 
      .......... 
    } 

獲取Maven的JSON Simple MavenDirect Jar File

相關問題