带有键的JSON.stringify对象,子对象中不带引号

时间:2019-03-03 15:56:58

标签: javascript json google-apps-script google-apps-script-addon

我当前的对象如下:

var file_data = ({
            "file_name_as_key":{
                "id":"file_name_as_id",
                "title":"file title",
                "type":"extention type",
                "cat":"category title",
                "cost":"",
                "desc":"Some text that will go here \"Something in quotes\" <strong>Something as bold</strong> some more text.",
                "img":"image url",
                "url":"Coresponding page url ",
                "status":"Updated"
            }
        });

我需要的是以下内容:

var file_data = ({
            "file_name_as_key":{
                id:"file_name_as_id",
                title:"file title",
                type:"extention type",
                cat:"category title",
                cost:0,
                desc:"Some text that will go here \"Something in quotes\" <strong>Something as bold</strong> some more text.",
                img:"image url",
                url:"Coresponding page url ",
                status:"Updated"
            }
        });

我在Code.gs文件中创建对象,然后将对象作为JSON.stringify(my_obj)传递到模板。

这是我的脚本:

    var file_data = {};

var i = 0;
fileData.forEach(function (row) {
  i++;
  if(i >= 2){
    file_data[row[8]] = {
        id: row[8],
        title: row[0],
        type: row[1],
        cat: row[2],
        cost: row[3],
        desc: row[4],
        img: row[5],
        url: row[6],
        status: row[7]
    }
  }
});

return JSON.stringify(file_data);

有人可以建议如何解决这个问题,以便我以所需的格式获得对象吗?

谢谢。

2 个答案:

答案 0 :(得分:0)

据我了解,您希望将其保存为:

[{}, {}]

但不是:

({}, {})

因此,在创建对象之后,将它们推入数组:

file_data.push(fileData)

现在,您可以根据需要遍历file_data数组。

答案 1 :(得分:0)

实际上,我所需要的很容易实现。我要做的就是在函数中的return语句中添加替换

return JSON.stringify(file_data).replace(/"(\w+)"\s*:/g, '$1:');