如何在java中使用非字符串键名创建JSON数组?

时间:2013-12-06 10:52:23

标签: java json twitter-bootstrap

我在UI上使用这个bootstrap transfer插件,我必须在java应用程序发送的数据的帮助下填充。此插件要求数据是具有“值”和“内容”属性的对象数组。 我可以轻松地在java中创建一个列表并将其转换为JSON数组,但问题是这个插件需要键名作为非字符串名称。我尝试使用字符串键名称但是没有用。我查找了在JSON中创建非字符串键名的方法,我找到的唯一方法是编写自己的解析器,这也是不推荐的。那么如何在java中为这个插件准备我的数据呢?

编辑: 如插件文档中所述,这里有一个填充它的示例数据。

$(function() {
...
var t = $('#test').bootstrapTransfer();
t.populate([
    {value:"1", content:"Apple"},
    {value:"2", content:"Orange"},
    {value:"3", content:"Banana"},
    {value:"4", content:"Peach"},
    {value:"5", content:"Grapes"}
]);
...

});

当我准备一个JSON数组时,它就像{“value”:“1”,“content”:“Apple”}这对这个插件不起作用。

1 个答案:

答案 0 :(得分:2)

使用带引号的字符串时,可以检查它是如何再次运行的。 访问JSON对象时,不需要键的引号。以此代码为例(在Nodejs中):

var console = require("console");
var data = { "value1" : 13,
    "value2" : "hello",
    value3: 15,
    value4 : "hello again" };

console.log("Value 1 = " + data.value1 );
console.log("Value 2 = " + data.value2 );
console.log("Value 3 = " + data.value3 );
console.log("Value 4 = " + data.value4 );

某些对象是使用带引号的字符串声明的,有些则不是。所有访问都没有引号,我的控制台显示:

Value 1 = 13
Value 2 = hello
Value 3 = 15
Value 4 = hello again

因此,在java中定义密钥的方式确实无关紧要。我知道这不是你如何这个问题的确切答案,但你真的不应该这样做。