JSONとnullの解惑
プログラムを作ってから今まで、JSONを使って何年もかかりました。突然JSONがputの空き値の時にkeyがあることを発見しました。ある時はありません。この疑惑を解消するために、以下のテストを行いました。私が使っているカバンはJson-lib-244-jdk 15.jarです。
例1:
このことから、もしputの空のポインターがJSONに与えられたら、JSONはこのkeyを自動的に遮断することができます。
もう一つの例を見に来ます。
例二:
例2では、Stringタイプの文字列valueの値を「null」に設定します。この時JSONはkeyとvalueを持っています。皆さん、valueはnullです。「null」には引用符が付いていません。JSONが文字列「null」を自動的に識別可能な空の値に変換すると推測します。もし我々がvalueの値を「null」以外の任意の文字に設定すれば、JSONには引用符が付いています。
以上のように、valueが空の時にkeyを表示しないとnullを直接伝えることができます。ただし、valueが空であるかどうかに関わらず、keyを持つ必要がある場合は、手動でnullを「null」文字列に変換すればいいです。
浅学非才で何か不正がありますか?上手な人に教えてほしいです。
例1:
public static void main(String[] args) {
JSONObject json = new JSONObject();
json.put("key", null);
System.out.println(json);
}
コントロール出力が見えます。{}このことから、もしputの空のポインターがJSONに与えられたら、JSONはこのkeyを自動的に遮断することができます。
もう一つの例を見に来ます。
例二:
public static void main(String[] args) {
JSONObject json = new JSONObject();
String value = "null";
json.put("key", value);
System.out.println(json);
}
コンソール出力:{"key":null]例2では、Stringタイプの文字列valueの値を「null」に設定します。この時JSONはkeyとvalueを持っています。皆さん、valueはnullです。「null」には引用符が付いていません。JSONが文字列「null」を自動的に識別可能な空の値に変換すると推測します。もし我々がvalueの値を「null」以外の任意の文字に設定すれば、JSONには引用符が付いています。
以上のように、valueが空の時にkeyを表示しないとnullを直接伝えることができます。ただし、valueが空であるかどうかに関わらず、keyを持つ必要がある場合は、手動でnullを「null」文字列に変換すればいいです。
浅学非才で何か不正がありますか?上手な人に教えてほしいです。