修改JSON对象

Modifying a JSON Object

本文关键字:对象 JSON 修改      更新时间:2023-09-26

我有一个由Papa Parse从CSV文件生成的JSON,如下所示:

{ object, object, object, .... , object }

我需要修改它,使其看起来像这样:

{ "publication" : 
    {
      "id" : 1,
      "name" : "name1"
    },
  "publication" :
    {
      "id" : 2,
      "name" : "name2"
    },
  "publication" :
    {
      "id" : 3,
      "name" : "name3"
    }
}

其中"id"answers"name"是每个对象中的属性。

换句话说,我需要一个JSON,上面写着"发布",每个"发布"都嵌套了上面一个对象的属性名称和值。

如何使用Javascript实现这一点?

感谢

不能放置多个具有相同名称的键。。。

它在阵列中的解决方案

{ 
    "publication" : [
      {
        "id" : 1,
        "name" : "name1"
      },
      {
        "id" : 2,
        "name" : "name2"
      },
      {
        "id" : 3,
        "name" : "name3"
      }]
}

这不是一个发布数组吗?

   { publications: [{"id":1, "name":"name1"},
         {"id":2, "name":"name2"}.....]}

如果我理解得对,你可能是说你有这样的对象:

{"publication" : { "id" : 1, "name" : "name1" }
{"publication" : { "id" : 2, "name" : "name2" }
{"publication" : { "id" : 3, "name" : "name3" }

你可以做什么来拥有:

{ "publication" : [ 
    {
        "id" : 1, 
        "name" : "name1"
    }, 
    {
        "id" : 1, 
        "name" : "name2"
    }, 
    {
        "id" : 3, 
        "name" : "name3"
    } ] 
}

是:

var json = [{"publication" : { "id" : 1, "name" : "name1" }},
                {"publication" : { "id" : 2, "name" : "name2" }},
                {"publication" : { "id" : 3, "name" : "name3" }}];
var newJson = {"publication" : []};
    var i = 0;
    for (var item in json) {
        var key = json[item];
        var obj = {"id" : key["publication"]["id"], "name" : key["publication"]["name"]};
        newJson["publication"][i] = obj;
        i++;
    }

如果你想打印"漂亮",你可以检查一下:

如何使用JavaScript漂亮地打印JSON?