Json漂亮的打印失败了

时间:2013-10-15 12:03:41

标签: android json

我的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时也是如此。)

1 个答案:

答案 0 :(得分: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。它也写在文档中:

  

public String toString()

     
    

将此数组编码为紧凑的JSON字符串

  

  

public String toString(int indentSpaces)

     
    

将此数组编码为用于调试的人类可读JSON字符串