У меня есть требование, что я хочу составить список ключей и вернуться с помощью nodejs.
Вот моя структура json:
{
type: "qwqw",
org: "asdasd",
pop: "asaswe",
results: {
"resultId1": {
"type": "normal"
.............
..............
},
"resultId2": {
"type": "normal"
.............
..............
},
"resultId3": {
"type": "normal"
.............
..............
}
}
Итак, здесь желаемый результат; что-то вроде этого ["resultId1", "resultId2", "resultId3"]
Вот что я пробовал:
var keys = Object.keys(jsonString.results);
for (var i = 0; i < keys.length; i++) {
console.info(data[keys[i]]);
}
Может ли кто-нибудь помочь мне с синтаксическим анализом json с использованием любой библиотеки nodejs;
Что ты пробовал? Каков ваш желаемый результат?
Обновил вопрос; пожалуйста, проверьте
А что пробовали?
Вы уже решили свою проблему. var keys = Object.keys(jsonString.results);
В результате я получаю неопределенное значение;
Не могли бы вы включить свой код в свой вопрос? (Включая способ импорта ваших данных) Редактировать : Между прочим, ваш цикл for совершенно бесполезен. просто распечатайте переменную keys.
@Seblor, сработало.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


вам стоит попробовать это, так как получить ключи в javascript довольно просто.
var data = {
type: "qwqw",
org: "asdasd",
pop: "asaswe",
results: {
"resultId1": {
"type": "normal"
},
"resultId2": {
"type": "normal"
},
"resultId3": {
"type": "normal"
}
}
};
var output = Object.keys(data.results);
console.info(output);файл data.json: { "тип": "qwqw", "org": "asdasd", "pop": "asaswe", "полученные результаты": { "resultId1": { «id»: «4001», "тип": "нормальный" }, "resultId2": { «id»: «5001», "тип": "Нормальный" }, "resultId3": { «id»: «6001», "тип": "Нормальный" } } }
Node.js Program :
//Program by Atharva Jawalkar
var fs = require("fs");
var dir = __dirname + "/data.json";
fs.readFile(dir, "utf8", function(err, data) {
if (err) throw err;
var obj = JSON.parse(data);
var obj2 = obj.results;
var keysArray = Object.keys(obj2);
var len = keysArray.length;
for (var i = 0; i < len; i++) {
var key = keysArray[i];
var value = obj2[key];
console.info(key, value);
}
});
Output:
resultId1
json_parsing_try3.js:15
Object {id: "4001", type: "normal"}
json_parsing_try3.js:15
resultId2
json_parsing_try3.js:15
Object {id: "5001", type: "Normal"}
json_parsing_try3.js:15
resultId3
json_parsing_try3.js:15
Object {id: "6001", type: "Normal"}
Here i have created data.json file and read that file in program but you can declare your json data in variable also.
У вас есть ошибка в вашем коде:
var keys = Object.keys(jsonString.results);
for (var i = 0; i < keys.length; i++) {
console.info(data[keys[i]]);
}
должно быть
var keys = Object.keys(jsonString.results);
for (var i = 0; i < keys.length; i++) {
console.info(keys[i]);
}
Обратите внимание на разницу в строке 3 в параметре console.info.
Перед тем, как проголосовать против, прокомментируйте это; так что я могу это исправить.