我的代码看起来像这样:
import net.sf.json.*;--just so you know what the library is
...
JSONArray a = new JSONArray();
JSONObject p = new JSONObject();
p.put("some_attribute1","some normal string");
p.put("some_attribute2","[3something]");
p.put("some_attribute3","[something3]");
a.add(p);
System.out.println(a.toString());
这会产生:
[
{
"some_attribute1":"some normal string",
"some_attribute2":["3something"],
"some_attribute3":"[something3]"
}
]
而不是所需的结果:
[
{
"some_attribute1":"some normal string",
"some_attribute2":"[3something]",
"some_attribute3":"[something3]"
}
]
注意“some_attribute2”与实际输出中的数组之间的差异与所需输出中的字符串之间的区别。谁能解释为什么会这样?如果有一个术语可以更好地对我的问题进行分类呢?
答案 0 :(得分:0)
这实际上是已经报告的错误。这是链接:http://sourceforge.net/tracker/?func=detail&aid=3201838&group_id=171425&atid=857928
...它看起来不再支持这个库了,这个问题自2011年中期以来就存在......
我们已经被json-lib库推迟了,不再受到官方支持,并决定切换到gson。我们的代码中有太多地方没有任何好的修复或解决方法,可能会导致此问题。
答案 1 :(得分:-1)
看起来很奇怪,但如果put
尝试将值转换为JSONObject,并且我正确地解释了documentation,那么您似乎需要引用一些字符串:
如果字符串不以引号或单引号开头,并且它们不包含前导或尾随空格,并且它们不包含任何这些字符,则根本不需要引用字符串:{{1}如果它们看起来不像数字,并且它们不是保留字
{ } [ ] / \ : , = ; #
,true
或false
。
这意味着如果你想要一个你应该使用的字符串:
null