К сожалению, JSON до сих пор вызывает много путаницы. JSON - это текст . Текст, который использует синтаксис, очень похожий на то, как объекты определены в JavaScript.
Код, который вы используете, использует json: true
, а Request.get
, следовательно, анализирует ответ в объект для вас. Это становится понятным, когда вы используете if (body['success'])
, поскольку, если бы ответ API был строкой, свойства success
не было бы.
Это означает, что JSON теперь полностью отсутствует, мы имеем дело только с объектами JavaScript. Мы можем получить доступ к их свойствам с помощью точечных или квадратных скобок и создать новые.
Вот код, который захватит первые 5 элементов и зарегистрирует результат:
const Request = require("request");
Request.get("http://csgobackpack.net/api/GetItemsList/v2/", { json: true }, (error, response, body) => {
// body contains the JSON reply already parsed into a JS Object
csgo = new Object();
if (body['success']) {
var limit = 5;
for (let key in body.items_list) {
// shorter way to grab multiple properties
const { icon_url, exterior } = body.items_list[key];
// add child to csgo
csgo[key] = { icon: icon_url, exterior }; // OR: exterior: exterior
if (--limit === 0) break;
}
console.log(csgo);
}
});
Ключевая часть
csgo[key] = { icon: icon_url, exterior };
Новое свойство добавляется к объекту и присваивается литералу указанного объекта.