getString()和optString()之间的区别

JSON中的getString()optString()什么区别?

正如迭戈提到的,在发布一个问题之前,检查一下文档 (这个链接现在已经过时 – 我们有Wayback Machine! )是一个好主意,但是现在你已经拥有了:

所不同的是,如果指定的键不存在, optString将返回空string( "" )。 getString另一方面抛出一个JSONException 。 如果数据丢失,则使用getString如果不确定数据是否存在,则使用optString

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

获取与密钥关联的可选string。 如果没有这个键,它将返回一个空string。 如果该值不是一个string,而不是空值,那么它将被转换为一个string。

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

如果您随时从JSON中获取数据,那么您可能会为某个特定的Key值产生null数据,而不是实现Null条件,那么最好使用这个优化方法optString("<keyname>")

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