Доступ к вложенным ключам с помощью nodejs

У меня есть требование, что я хочу составить список ключей и вернуться с помощью 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;

Перед тем, как проголосовать против, прокомментируйте это; так что я могу это исправить.

Ram Kowsu 17.09.2018 14:27

Что ты пробовал? Каков ваш желаемый результат?

TommyBs 17.09.2018 14:27

Обновил вопрос; пожалуйста, проверьте

Ram Kowsu 17.09.2018 14:29

А что пробовали?

Sebastian Speitel 17.09.2018 14:30

Вы уже решили свою проблему. var keys = Object.keys(jsonString.results);

Seblor 17.09.2018 14:33

В результате я получаю неопределенное значение;

Ram Kowsu 17.09.2018 14:33

Не могли бы вы включить свой код в свой вопрос? (Включая способ импорта ваших данных) Редактировать : Между прочим, ваш цикл for совершенно бесполезен. просто распечатайте переменную keys.

Seblor 17.09.2018 14:34

@Seblor, сработало.

Ram Kowsu 17.09.2018 14:38
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
8
256
3

Ответы 3

вам стоит попробовать это, так как получить ключи в 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.

Другие вопросы по теме