0

私はAndroid APIレベル15でこのコードを持っています

        JSONArray l = new JSONArray();
        JSONObject a = new JSONObject();
        a.put("a", "a");
        a.put("b", "a");
        a.put("c", "d");
        l.put(a);
        a = new JSONObject();
        a.put("d", "a");
        a.put("g", "3");
        l.put(a);

        Log.d(TAG, l.toString(3));
        Log.d(TAG, l.toString());

出力はこれです

DEBUG   test    [
DEBUG   test       {
DEBUG   test          "b": "a",
DEBUG   test          "c": "d",
DEBUG   test          "a": "a"
DEBUG   test       },
DEBUG   test          "g": "3",
DEBUG   test          "d": "a"
DEBUG   test       }
DEBUG   test    ]
DEBUG   test    [{"b":"a","c":"d","a":"a"},{"g":"3","d":"a"}]

プリティ プリント出力には、2 番目の JSONObject の開始 { がありません。これは既知のバグですか?

(Gson を使用する場合も同様です。)

4

1 に答える 1

0

編集:

それは私にとってはうまくいっています.Intellijを使用しています:

10-15 14:18:43.433: DEBUG/it.enrichman.myapp(4470): [
        {
        "b": "a",
        "c": "d",
        "a": "a"
        },
        {
        "g": "3",
        "d": "a"
        }
        ]

そのため、(いつものように) Eclipse がログを台無しにしていると思います。:)


なぜこれがバグなのですか?これは予期される動作です。

toString(int indentSpaces)はきれいに出力され、通常のtoString ()は json を出力するだけです。ドキュメントにも次のように書かれています。

パブリック文字列 toString ()

この配列をコンパクトな JSON 文字列としてエンコードします

public String toString (int indentSpaces)

デバッグ用に、この配列を人間が判読できる JSON 文字列としてエンコードします

于 2013-10-15T12:05:21.433 に答える