Как динамически получить значение из вложенных объектов json в angular 6? - PullRequest
0 голосов
/ 21 февраля 2019

Я хочу получить доступ к данным внутри json-файла, который содержит несколько вложенных объектов, и я хочу распечатать их динамически, не задумываясь, что это за данные внутри.Я хочу печатать значения ключей внутри динамически.

мой json

 {
  "name" : "abc",
  "tags" : "def",
  "updated-by" : "ijk",
  "property" : {
    "description" : "abcd",
    "type" : "string"
  },
  "sources" : {
    "input" : {
      "type" : "lmn",
      "properties" : {
        "key" : "opq"
      }
    }
  }
}

Если мой ключ содержит объект, он должен войти внутрь этого объекта и затем распечатать его значения, но если это также другой объектзатем он должен войти внутрь этого объекта и затем вывести его значение ключа. Он должен динамически зацикливаться.Код должен быть угловым 4 или выше. Если кто-то может помочь.

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Вы можете использовать рекурсивную функцию.


<div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
<div class="snippet-code">
<pre class="snippet-code-js lang-js prettyprint-override"><code>const myObj = {
  "name" : "abc",
  "tags" : "def",
  "updated-by" : "ijk",
  "property" : {
    "description" : "abcd",
    "type" : "string"
  },
  "sources" : {
    "input" : {
      "type" : "lmn",
      "properties" : {
        "key" : "opq"
      }
    }
  }
}

function checkNested(obj) {
    for (let prop in obj) {        
        if (obj.hasOwnProperty(prop)) {
            if (typeof obj[prop] == "object"){
                console.log(`Key: ${prop}`)
                checkNested(obj[prop]);
            } else {
              console.log(`Key: ${prop} 'value: ${obj[prop]}`)
            }
        }
    }
}


checkNested(myObj)
0 голосов
/ 21 февраля 2019

Требуемое поведение уже охвачено методом JSON.stringify(jsonObject).

Вы также можете контролировать интервал и довольно печатать JSON .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...