我掙扎着從格式化的這樣一個JSON文件中獲取一些值:檢索嵌套數組值與JSON的Java
{
"search": {
"entry": [
{
"found": "identity=9454532,l=big,ton=grand,k=molvi",
"attribute": [
{
"name": "firstname",
"value": [
"Lucas"
]
},
{
"name": "lastname",
"value": [
"Brandon"
]
}
]
}
],
"return": {
"code": 0,
"message": "Success",
"count": 1
}
}
}
我已經嘗試了不同的方法(JSON,GSON,jayway-JsonPath),但我不要設法從「屬性」數組中獲取值,只能從第一個數組中獲取值。我不知道如何指定「屬性」是一個JSONArray而不是一個JSONObject或如何設置適當的路徑。 這是當它開創一個數組的最後一個代碼,我與停止正在播放:
public void String nameObtain (String email) throws IOException{
String link = "http://jsonfile/" + email;
JSONObject json = readJsonFromUrl(link);
JSONObject rootObject = json.getJSONObject("search");
JSONArray firstArray = rootObject.getJSONArray("entry");
for (int i = 0, size = firstArray.length(); i < size; i++) {
JSONObject objectInArray = firstArray.getJSONObject(i);
String[] elementNames = JSONObject.getNames(objectInArray);
System.out.printf("%d ELEMENTS IN CURRENT OBJECT:\n", elementNames.length);
for (String elementName : elementNames) {
String value = objectInArray.getString(elementName);
System.out.printf("name=%s, value=%s\n", elementName, value);
}
}
}
我想這樣做是爲了獲取值盧卡斯和布蘭登。任何幫助都感激不盡!使用
所以你想得到一個JSON數組,但使用'getString'?如果你不想指定你期望的類型,只需使用簡單的'get'方法即可。 –
或者對於那些你知道是JSON數組的人使用'getJSONArray'。 –
你能夠獲得「入口」數組的值嗎?如果是這樣,那麼它應該類似於「屬性」數組。 'getJSONArray'方法是你所需要的。無論從哪裏回來,都可以視爲JSONObject並進行迭代。 – Dadani