我的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时也是如此。)
答案 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字符串