将json字符串解析为javascript对象

时间:2013-03-26 15:15:33

标签: javascript arrays json

我正在使用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循环,但没有任何效果。

2 个答案:

答案 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" }]