抱歉问题,我是JS中的菜鸟。我有字符串:
[{"priceEm": 28000, "priceId": "25094967"}]
我如何转换为数组
['priceEm': 28000, 'priceId':'25094967']
并通过数组迭代,而不是通过字符串
答案 0 :(得分:2)
生成一个临时DOM元素,其字符串为HTML内容(通过设置innerHTML
属性),最后得到textContent
,这将是解码数据。
var str = '[{"priceEm": 28000, "priceId": "25094967"}]';
// create a temporary div element
var temp = document.createElement('div');
// set the html content
temp.innerHTML = str;
// get the text content
console.log(temp.textContent);
或者textarea
执行相同操作并最终获得value
。
var str = '[{"priceEm": 28000, "priceId": "25094967"}]';
// generate a temporary textarea
var temp = document.createElement('textarea');
// set the html content
temp.innerHTML = str;
// get the value of the element
console.log(temp.value);
UPDATE:结果是有效的JSON数据,您可以在使用JSON.parse
方法传递JSON字符串后进行迭代。
var str = '[{"priceEm": 28000, "priceId": "25094967"}]';
var temp = document.createElement('textarea');
temp.innerHTML = str;
// parse the JSON string
var arr = JSON.parse(temp.value);
console.log(arr[0]);
// iterate over the array
arr.forEach(function(obj) {
console.log(obj);
// iterate over the object properties
Object.keys(obj).forEach(function(k) {
console.log(k, obj[k]);
})
});
答案 1 :(得分:1)
Pranav的答案很接近。您最终需要将其解析为对象以访问其属性:
var str = '[{"priceEm": 28000, "priceId": "25094967"}]';
var temp = document.createElement('div');
temp.innerHTML = str;
var finalObj = JSON.parse(temp.textContent)[0];