首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自json-lib的意外输出,其中的字符串似乎是一个数组

来自json-lib的意外输出,其中的字符串似乎是一个数组
EN

Stack Overflow用户
提问于 2013-01-22 01:02:34
回答 2查看 164关注 0票数 1

我的代码看起来像这样:

代码语言:javascript
复制
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());

这会产生以下结果:

代码语言:javascript
复制
[
    {
        "some_attribute1":"some normal string",
        "some_attribute2":["3something"],
        "some_attribute3":"[something3]"
    }
]

而不是期望的结果:

代码语言:javascript
复制
[
    {
        "some_attribute1":"some normal string",
        "some_attribute2":"[3something]",
        "some_attribute3":"[something3]"
    }
]

注意"some_attribute2“是实际输出中的数组和期望输出中的字符串之间的区别。有人能解释一下为什么会这样吗?另外,如果有一个术语可以更好地对我的问题进行分类?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-22 02:24:57

这实际上是一个已经被报告的错误。这里有个链接:http://sourceforge.net/tracker/?func=detail&aid=3201838&group_id=171425&atid=857928

..。看起来这个库不再被支持了,这个问题从2011年中就已经存在了……

我们已经被json-lib库不再被官方支持所拖累,并决定切换到gson。这个问题可能是由于我们的代码中有太多的地方没有任何好的修复或解决办法而引起的。

票数 0
EN

Stack Overflow用户

发布于 2013-01-22 01:56:57

看起来很奇怪的行为,但是如果put试图将值转换为JSONObject,并且如果我正确解释了documentation,那么您似乎需要引用一些字符串:

如果

字符串不是以引号或单引号开头,并且不包含前导空格或尾随空格,并且不包含以下任何字符,则根本不需要对其进行引号:{ } [ ] / \ : , = ; #;如果它们看起来不像数字,并且它们不是保留字truefalsenull

这意味着如果你想要一个字符串,你应该使用:

代码语言:javascript
复制
p.put("some_attribute2","'[3something]'");
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14443631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档