簡體   English   中英

JSON的Assoc數組到變量?

[英]JSON Assoc Array to Variables?

我有一個JSON關聯數組

[{"Test":"5:00pm"},{"Testing2":"4:30 pm"}]

我想使其成為一個數組

{
  theatre = Test
  time = 5:00pm
},
{
  theatre = Testing2
  time = 4:30 pm
}

但是我不知道如何使用鍵名並將其設為值...

有什么幫助嗎? 我在查看Object.keys但是找不到合適的解決方案。

您有一個包含對象值的數組。 您需要遍歷它們:

var oldArray = [{"Test":"5:00pm"},{"Testing2":"4:30 pm"}];
var newArray = [];

for (var i = 0; i < oldArray.length; i++) {
    var keys = Object.keys(oldArray[i]);

    newArray.push({
        theatre: keys[0],
        time: oldArray[i][keys[0]]
    });
}

http://jsfiddle.net/FNAtw/

這將為您提供一個存儲在newArray的數組,其中包含兩個元素。 第一個元素是對象,其kvps theatre: 'Test'time: '5:00pm' 第二個元素是一個對象,其對象具有kvps theatre: 'Testing2' Testing2 theatre: 'Testing2'time: '4:30pm'

嘗試以下解決方法:

var json = '[{"Test":"5:00pm"},{"Testing2":"4:30 pm"}]';
var betterJson = json.replace('{"', '{"theatre":"').replace('":"','",time:"');

如果JSON總是和上面一樣簡單,則應該可以使用。 但這很脆...

如果您有JS對象,則可以使用Object.keys 它將在最新的瀏覽器中運行。

您還可以循環播放每個項目,然后保存第一個項目。

var result = [];
var str = [{"Test":"5:00pm"},{"Testing2":"4:30 pm"}];
for (var i = 0; i < str.length; i++) {
    var obj = {};
    foreach (var key in str[i]) {
        obj.theatre = key;
        obj.time = str[i][key];
    }
    result.push(obj);
}

可能有些笨拙,但應該跨瀏覽器工作。

var js = [{"Test":"5:00pm"},{"Testing2":"4:30 pm"}]
var newJSON = []
for(var i = 0; i< js.length; i++) {
    for( var key in js[i]) {
        if(js[i].hasOwnProperty(key)) {
            var tmpJS= {};
            tmpJS['theater'] =  key;
            tmpJS['time'] = js[i][key];
            newJSON.push(tmpJS);
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM