В чем разница между getString()
и optString()
в JSON?
Разница между getString() и optString() в Json
Ответ 1
Как упоминает Диего, неплохо проверить документацию (эта ссылка устарела - хорошо, что у нас есть Wayback Machine!) перед публикацией вопроса здесь, но теперь, когда у вас есть:
Разница в том, что optString
возвращает пустую строку (""
), если указанный вами ключ не существует. getString
, с другой стороны, бросает a JSONException
. Используйте getString
, если это ошибка для данных, которые будут отсутствовать, или optString
, если вы не уверены, что она будет там.
Изменить: Полное описание из документации:
Получить необязательную строку, связанную с ключом. Он возвращает пустую строку, если такой ключ отсутствует. Если значение не является строкой и не является нулевым, то оно преобразуется в строку.
Ответ 2
Если вы хотите избежать NullPointerException
, лучше использовать optString()
Если вы извлекаете данные из JSON
в любой момент, у вас могут быть данные null
для определенного значения ключа, тогда вместо выполнения условий Null лучше использовать этот оптимизированный метод optString("<keyname>")
Ответ 3
public java.lang.String optString (int index) Получите необязательное строковое значение, связанное с индексом. Он возвращает пустую строку, если в этом индексе нет значения. Если значение не является строкой и не является нулевым, то оно прикрывается строкой. Параметры: index - индекс должен быть между 0 и длиной() - 1. Возвращает: Значение строки.
Ответ 4
1) getString (String name): - Этот метод возвращает значение String, отображаемое по имени, если оно существует, с принудительной привязкой, если это необходимо, или генерирует исключение JSONException, если такого отображения не существует.
2)optString (String name): - Этот метод возвращает значение String, отображаемое по имени, если оно существует, с принудительной привязкой при необходимости или пустой строкой (""), если такого нет отображение существует.
Ответ 5
optString() используется для преодоления NullPointerException, которое мы получаем при использовании getString(), когда требуемый ключ не существует в json, он в основном заменяется значением по умолчанию.
Например, пусть вход Json будет
{
"name":"abhi",
"country":"india"
}
теперь в Java, когда вы выполняете
String city = json.getString("city");
это бросит NullPointerException
.
с помощью optString(String key, String default)
мы можем преодолеть вышеуказанную проблему.
String city= json.optString("city","default");
System.out.println(city);
Вывод: по умолчанию