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"}]

漂亮的打印输出缺少第二个 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 字符串

公共字符串 toString (int indentSpaces)

将此数组编码为人类可读的 JSON 字符串以进行调试

于 2013-10-15T12:05:21.433 回答