我正在使用Firefox 19.0.2。 我收到一个JSON字符串(进入JavaScript函数),其大小不断改变,
有时是:
var jsonstring = {"CA":"CA","NY":"NY","TX":"TX"}
有时是:
var jsonstring = {"Hello":"Hello","Goodbye":"Goodbye"}
我想像这样创建一个结果数组(如果是第一个例子):
data[0].value = "CA"
data[0].text = "CA"
data[1].value = "NY"
data[1].text = "NY"
data[2].value = "TX"
data[2].text = "TX"
我该怎么做?
我在这里阅读了几篇早期帖子并尝试了几个for
循环,但没有任何效果。
答案 0 :(得分:1)
您可以使用JSON.parse
转换为对象(在您的示例中,您可以使用对象):
var obj= JSON.parse('{"CA":"CA","NY":"NY","TX":"TX"}')
请记住,您不能依赖于对象中属性的顺序,因此您无法在for循环中完成上述尝试。
答案 1 :(得分:0)
使用JSON.parse
从JSON获取对象后的转换看起来像这样:
obj = {
CA: 'CA',
LA: 'LA'
};
arr = [];
for (var key in obj) {
if(!obj.hasOwnProperty(key))
continue;
arr.push({value: key, text: obj[key]});
}
// Output
[{ value: "CA", text: "CA" }, { value: "LA", text: "LA" }]