0

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ループを試しましたが、何も機能しません.

4

2 に答える 2

1

オブジェクトに変換するために使用できJSON.parseます(あなたの例では、すでにオブジェクトがあります):

var obj= JSON.parse('{"CA":"CA","NY":"NY","TX":"TX"}')

オブジェクト内の属性の順序に依存することはできないため、上記の for ループでやろうとしていることを達成できないことに注意してください。

于 2013-03-26T15:18:41.657 に答える
0

JSON からオブジェクトを取得するために使用した後の変換JSON.parseは、次のようになります。

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" }]
于 2013-03-26T15:23:35.893 に答える