1. ホーム
  2. java

javaのorg.json.JSONObjectで値をnullに設定するにはどうすればよいですか?

2023-10-06 11:33:39

質問

javaのorg.json.JSONObjectで値をnullに設定するにはどうすればよいですか?私は確かにisNullを使用して値がNULLであるかどうかを読むことができます - しかし、私がNULLを置くとき、それはちょうど私を無視するように思われます。

JSONObject o = new JSONObject();
o.put("key",null);
o.isNull("key"); // returns true, buuuut...
o.has("key");    // returns false
o.isNull("somethingIHaventSetAtAll");    // also returns true, unfortunately

どのように解決するのですか?

試しに JSONObject.NULL の代わりに null :

値を持たない名前を明示的に定義するために使用されるセンチネル値です。nullとは異なり、この値を持つ名前は

  • names() 配列に表示されます。
  • keys() のイテレータに表示されます。
  • has(String)に対してtrueを返す。
  • get(String)で投げない。
  • はエンコードされたJSON文字列に含まれます。

この値は、nullと比較したときにtrueを返すことで、equals(Object)の一般的な契約に違反しています。そのtoString()メソッドは"null"を返します。