JS将字符串转换为数组

时间:2017-03-12 10:22:19

标签: javascript arrays json

抱歉问题,我是JS中的菜鸟。我有字符串:

[{"priceEm": 28000, "priceId": "25094967"}]

我如何转换为数组

['priceEm': 28000, 'priceId':'25094967'] 

并通过数组迭代,而不是通过字符串

2 个答案:

答案 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];