Как я могу добавить объект с javascript к этому json примеру? - PullRequest
0 голосов
/ 09 февраля 2020

Как я могу добавить "name_3" к этому json?

    json = {
        "name_1": [{
                "kind": "podcast",
                "artistId": 139918600
            },
            {
                "kind": "podcast",
                "artistId": 139918600
            }
        ],
        "name_2": [{
                "kind": "podcast",
                "artistId": 139918600
            },
            {
                "kind": "podcast",
                "artistId": 139918600
            }
        ]
    }

var name_3 = {"kind": "audio","artistId": 4691754},{"kind": "video","artistId": 139918600}

Я хочу получить к нему доступ вот так json.name_3[0]artistId Позже мне придется проверьте, существует ли он уже, и перепишите его или удалите из пользовательской функции

Ответы [ 4 ]

1 голос
/ 09 февраля 2020
let json = {
    "name_1": [{
        "kind": "podcast",
        "artistId": 139918600
    },
    {
        "kind": "podcast",
        "artistId": 139918600
    }
    ],
    "name_2": [{
        "kind": "podcast",
        "artistId": 139918600
    },
    {
        "kind": "podcast",
        "artistId": 139918600
    }
    ]
}

let name_3 = [{ "kind": "audio", "artistId": 4691754 }, { "kind": "video", "artistId": 139918600 }];

json["name_3"] = name_3;
//or
//json.name_3 = name_3;

//access it:
console.log(json.name_3 && json.name_3[0].artistId);

//check if it's there:
if (json.name_3) console.log("It's there");
else console.log("Not there")

//delete it:
delete json.name_3;
1 голос
/ 09 февраля 2020

Используйте скобки json["name_3"] = или с переменной json[name] = или точечной нотацией json.name_3 =

const json = {
  "name_1": [{
      "kind": "podcast",
      "artistId": 139918600
    },
    {
      "kind": "podcast",
      "artistId": 139918600
    }
  ],
  "name_2": [{
      "kind": "podcast",
      "artistId": 139918600
    },
    {
      "kind": "podcast",
      "artistId": 139918600
    }
  ]
};


const name = "name_3";
json[name] = [{
  "kind": "movie",
  "artistId": 123456780
}];
console.log(json[name][0])
0 голосов
/ 10 февраля 2020

Вы можете попробовать оператор спреда , чтобы добиться этого.

var json = {
        "name_1": [{
                "kind": "podcast",
                "artistId": 139918600
            },
            {
                "kind": "podcast",
                "artistId": 139918600
            }
        ],
        "name_2": [{
                "kind": "podcast",
                "artistId": 139918600
            },
            {
                "kind": "podcast",
                "artistId": 139918600
            }
        ]
    };
    
var name_3 = [{"kind": "audio","artistId": 4691754},{"kind": "video","artistId": 139918600}];

console.log({...json, name_3});
0 голосов
/ 09 февраля 2020

Ваш json должен быть строкой, а не объектом, тогда вы можете проанализировать его для объекта с помощью метода JSON .parse (). Затем вы можете добавить новый элемент к объекту и снова сделать его json в формате JSON .stringify ().

const json = `{
        "name_1": [{
                "kind": "podcast",
                "artistId": 139918600
            },
            {
                "kind": "podcast",
                "artistId": 139918600
            }
        ],
        "name_2": [{
                "kind": "podcast",
                "artistId": 139918600
            },
            {
                "kind": "podcast",
                "artistId": 139918600
            }
        ]
    }`
    const name3 = [{kind: "audio",artistId: 4691754},{kind: "video",artistId: 139918600}];
    let obj = JSON.parse(json);
    Object.assign(obj, name3);
    const newJson = JSON.stringify(obj)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...