将JavaScript字符串转换为JavaScript对象时遇到的问题

时间:2020-10-10 05:55:49

标签: javascript jquery json

我正在尝试使用JSON.Parse将javscript字符串转换为Object

这是代码段

 var row = '{ "key1": true, "header": "Title A", "Size": 100}';
 $.each(elements, function (i, item) {
    let headerDisplay = '';
    headerDisplay =  this.title;
    row+=',';
     row += '{ "key1": true, "header": "'+headerDisplay+'", "Size": 100}';
    
  });
  var object=JSON.parse(row);

我跌倒了错误

Unexpected token , in JSON at position 177

请让我知道可能是什么问题,以及如何将字符串转换为对象。

我期望输出类似于 预期输出类似于

var finalObject = [
    { "key1": true, "header": "Title A", "Size": 100 },
    { "key1": true, "header": "Title1", "Size": 100 },
    { "key1": true, "header": "Title2", "Size": 100 },
    ...
]

2 个答案:

答案 0 :(得分:0)

问题中的代码表明没有理由使用JSON:

let finalObject = [
    {
        key1: true,
        header: "Title A",
        Size: 100,
    },
];

$.each(elements, (i, item) => {
    finalObject.push({
        key1: true,
        header: item.title,
        Size: 100,
    });
});

答案 1 :(得分:0)

考虑制作一个数组,然后填充该数组。

var elements = [{
  title: "Item B"
}, {
  title: "Item C"
}];
var row = [];
row.push(JSON.parse('{ "key1": true, "header": "Title A", "Size": 100 }'));
$.each(elements, function(i, item) {
  row.push({
    key1: true,
    header: item.title,
    Size: 100
  });
});
console.log("Final:", row);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

参考: