存在しないとき、私はJSON以下の受信Strutsアクションを持っています。次のコードJSONObject要素が
{
"commandId":"tC",
"id":"123",
"def":""
}
だけで正常に動作します:以来
JSONObject command = null;
String commandId = null;
String deviceId = null;
try {
command = new JSONObject(json);
commandId = command.getString("commandId");
}
"DEF"を空にすることができ、非宣言された、または私はこれをやってみました要素の別の配列を含めることができます。
JSONObject def = command.getJSONObject("def");
{
"commandId":"tC",
"id":"123",
"def":{"1":"aaa", "2":"bbb"}
}
はデフ空かないときは:場合DEFは、この例のように空にされていないデフ
これだけの作品は要素で定義され、このJSONオブジェクトを取得するために私のプログラムが行の上で動作しなくなることを定義しましたJSONObject def = command.getJSONObject("def");
そして、それは実行を継続しないことに気づかれましたか?
私はJSONObject def = command.getJSONObject("def");
try/catchブロックを置く場合、私は_JSONObject [ "DEF"]を得るには、JSONObject _例外ではありませんが、実行は
どうJSONObject.getJsonObject(String)
が振る舞うんか?継続しませんか
空のJSONObjectを返して実行を続けると思います。
に定義されているものがあるかどうかを確認してからを確認し、if、elseプログラムの中で見つかった値に応じて何をすべきかを決定します。クライアントのjsonがdefが空であるか、定義されていない場合、私のプログラムを動作させてください。