80

getString()JSON和JSON有什么区别optString()

4

5 回答 5

140

正如 Diego 所提到的,在此处发布问题之前检查文档(此链接现已过时 - 还好我们有Wayback Machine!)是个好主意,但现在您有:

不同之处在于,如果您指定的键不存在,则optString返回空字符串 ( )。另一方面抛出一个. 如果数据丢失是错误的,或者如果您不确定它是否会存在,请使用。""getStringJSONExceptiongetStringoptString

编辑:文档中的完整描述:

获取与键关联的可选字符串。如果没有这样的键,它会返回一个空字符串。如果值不是字符串且不为空,则将其转换为字符串。

于 2012-12-09T19:14:48.383 回答
12

如果你想避免NullPointerException你最好利用optString()

如果您JSON在任何时候获取数据,您可能会有null特定 Key 值的数据,此时与其实现 Null 条件,不如利用此优化方法optString("<keyname>")

于 2016-08-09T08:31:08.267 回答
1

public java.lang.String optString(int index) 获取与索引关联的可选字符串值。如果该索引处没有值,则返回一个空字符串。如果该值不是字符串且不为空,则将其转换为字符串。参数: index - 索引必须介于 0 和 length() - 1 之间。返回:一个字符串值。

于 2015-09-03T06:31:24.193 回答
0

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);

输出:默认

于 2019-09-09T06:30:34.273 回答
0

1) getString(String name):-如果存在,则返回按名称映射的字符串值,必要时强制转换,如果不存在这样的映射,则抛出 JSONException

2) optString (String name):-如果存在,则返回按名称映射的字符串值,必要时强制它,如果不存在这样的映射,则返回空字符串(“”)

于 2019-09-09T05:33:34.470 回答