JSONgetString()
との違いは何ですか?optString()
5 に答える
ディエゴが述べているように、ここに質問を投稿する前に、ドキュメントを確認することをお勧めします(このリンクは古くなっています。WaybackMachineがあるのは良いことです!)。
違いは、指定したキーが存在しない場合optString
、空の文字列()を返すことです。一方、をスローします。データが欠落していることがエラーである場合、またはデータが存在するかどうかわからない場合に使用します。""
getString
JSONException
getString
optString
編集:ドキュメントからの完全な説明:
キーに関連付けられたオプションの文字列を取得します。そのようなキーがない場合は、空の文字列を返します。値が文字列でもnullでもない場合は、文字列に変換されます。
避けたい場合NullPointerException
は、optString()
JSON
いつでもデータをフェッチしている場合null
は、特定のKey値のデータがある可能性があります。その時点では、Null条件を実装する代わりに、この最適化された方法をより適切に利用します。optString("<keyname>")
public java.lang.String optString(int index)インデックスに関連付けられたオプションの文字列値を取得します。そのインデックスに値がない場合は、空の文字列を返します。値が文字列でもnullでもない場合は、文字列に変換されます。パラメータ:index-インデックスは0からlength()-1の間でなければなりません。戻り値:文字列値。
1)getString(文字列名):-このメソッドは、名前でマップされた文字列値が存在する場合はそれを返し、必要に応じて強制します。そのようなマッピングが存在しない場合はJSONExceptionをスローします。
2)optString(文字列名):-このメソッドは、名前でマップされた文字列値を返します。存在する場合は強制し、そのようなマッピングが存在しない場合は空の文字列( "")を返します。
optString()は、必要なキーがjsonに存在しない場合にgetString()を使用しているときに取得するNullPointerExceptionを克服するために使用され、基本的にデフォルト値に置き換えられます。
例入力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);
出力:デフォルト