[英]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]]
});
}
這將為您提供一個存儲在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.