Я изо всех сил, чтобы получить некоторые значения из файла 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), но я не удается получить значения из массива «attribute», только те из первого массива. Я не знаю, как указать, что «атрибут» - это 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);
}
}
}
Что я хотел бы сделать, это получить значения Лукаса или Brandon. Любая помощь будет высоко ценится!
Итак, вы хотите получить массив JSON, но используете 'getString'? Просто используйте простой метод 'get', если вы не хотите указывать, какой тип вы ожидаете. –
Или используйте 'getJSONArray' для тех, кого вы знаете, массивы JSON. –
Вы можете вернуть значения для массива «запись»? если это так, то он должен быть похож на массив атрибутов. 'getJSONArray' - это все, что вам нужно. все, что возвращается от него, можно рассматривать как JSONObject и повторять. – Dadani