У меня есть данные в формате JSON в следующем формате:Как извлечь значение массива внутри вложенных данных JSON
{
"data": {
"id": 14810798216415,
"name": "crescentbahuman.com",
"is_organization": true,
"email_domains": [
"crescentbahuman.com"
]
}
}
Я хочу, чтобы получить строку в поле «email_domains». Я написал следующий код, как моя попытка:
JSONObject dataObject2= (JSONObject)jsonObject2.get("data");
long id = (long) dataObject2.get("id");
System.out.println("worksapce id is: " + id);
String name = (String) dataObject2.get("name");
System.out.println("The worksapce name is: " + name);
boolean is_organization = (boolean) dataObject2.get("is_organization");
System.out.println("The workspace is organization: " + is_organization);
JSONArray email_domains = (JSONArray) jsonObject2.get("email_domains");
Iterator<String> iterator = email_domains.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
В этом коде, чтобы получить «email_domains» только объект массива JSON создается, что получить данные из объекта JSON, а затем его итератора используется для получения значений внутри массив. Тем не менее, он выбрасывает исключение NullPointerException в этой строке:
Iterator<String> iterator = email_domains.iterator();
Я застреваю из-за этой проблемы. Может ли кто-нибудь предложить решение?
Является ли jsonObject внешним объектом или объектом данных? т. е. вы выполнили 'jsonObject = (JSONObject) something.get (" data ");', или вам просто нужно это сделать? –
Как ваш код даже компилируется? JSONArray не имеет метода iterator(). – stackoverflowuser2010
Вы извлекаете «email_domains» из переменной jsonObject, а не извлекаете ее из dataObject2. dataObject2.get ("name"); dataObject2.get ("is_organization"); ¿jsonObject? .get ("email_domains"); ??? – Chuidiang