getString()
JSON和JSON有什么区别optString()
?
5 回答
正如 Diego 所提到的,在此处发布问题之前检查文档(此链接现已过时 - 还好我们有Wayback Machine!)是个好主意,但现在您有:
不同之处在于,如果您指定的键不存在,则optString
返回空字符串 ( )。另一方面抛出一个. 如果数据丢失是错误的,或者如果您不确定它是否会存在,请使用。""
getString
JSONException
getString
optString
编辑:文档中的完整描述:
获取与键关联的可选字符串。如果没有这样的键,它会返回一个空字符串。如果值不是字符串且不为空,则将其转换为字符串。
如果你想避免NullPointerException
你最好利用optString()
如果您JSON
在任何时候获取数据,您可能会有null
特定 Key 值的数据,此时与其实现 Null 条件,不如利用此优化方法optString("<keyname>")
public java.lang.String optString(int index) 获取与索引关联的可选字符串值。如果该索引处没有值,则返回一个空字符串。如果该值不是字符串且不为空,则将其转换为字符串。参数: index - 索引必须介于 0 和 length() - 1 之间。返回:一个字符串值。
optString() 用于克服 NullPointerException,当所需的键在 json 中不存在时,我们在使用 getString() 时得到它,它基本上替换为默认值。
示例让输入 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);
输出:默认
1) getString(String name):-如果存在,则返回按名称映射的字符串值,必要时强制转换,如果不存在这样的映射,则抛出 JSONException。
2) optString (String name):-如果存在,则返回按名称映射的字符串值,必要时强制它,如果不存在这样的映射,则返回空字符串(“”)。