как получить значение Json? - PullRequest
0 голосов
/ 19 апреля 2019

Я хочу получить ключ и значение из данных JSON, как показано ниже.

{
  "data": {
    "listCard": {
      "cards": [
        {
          "id": "2",
          "title": "벗꽃볼사람",
          "content": "하이",
          "createdAt": "2019-04-17T16:06:31.962772+00:00",
          "creator": {
            "id": "2",
            "name": "운영자"
          }
        },
        {
          "id": "1",
          "title": "벗꽃볼사람",
          "content": "하이",
          "createdAt": "2019-04-17T16:06:14.789277+00:00",
          "creator": {
            "id": "2",
            "name": "운영자"
          }
        }
      ]
    }
  }
}

Я использую console.log (data.listCard), который показан ниже

{cards: Array(2), __typename: "ListCardResponse"}
cards: Array(2)
0: {id: "2", createdAt: "2019-04-17T16:06:31.962772+00:00", updatedAt: "2019-04-17T16:06:31.962820+00:00", title: "벗꽃볼사람", content: "하이", …}
1: {id: "1", createdAt: "2019-04-17T16:06:14.789277+00:00", updatedAt: "2019-04-17T16:06:14.789315+00:00", title: "벗꽃볼사람", content: "하이", …}
length: 2
__proto__: Array(0)
__typename: "ListCardResponse"
__proto__: Object

, но яиспользуйте console.log (data.listCard.cards), он показывает, что карты не определены.

наконец, я хочу использовать data.listCard.cards.map.не могли бы вы помочь мне?

Ответы [ 2 ]

1 голос
/ 19 апреля 2019

Во-первых, это не JSON - это обычный объект JavaScript.Во-вторых, использование object.data.listCard.cards отлично работает:

const object = {
  "data": {
    "listCard": {
      "cards": [{
          "id": "2",
          "title": "벗꽃볼사람",
          "content": "하이",
          "createdAt": "2019-04-17T16:06:31.962772+00:00",
          "creator": {
            "id": "2",
            "name": "운영자"
          }
        },
        {
          "id": "1",
          "title": "벗꽃볼사람",
          "content": "하이",
          "createdAt": "2019-04-17T16:06:14.789277+00:00",
          "creator": {
            "id": "2",
            "name": "운영자"
          }
        }
      ]
    }
  }
};

console.log(object.data.listCard.cards);
.as-console-wrapper { max-height: 100% !important; top: auto; }
0 голосов
/ 19 апреля 2019

Так как вы хотели использовать .map(). Итерируем по d.data.listCard.cards. Но вы можете рассмотреть возможность использования forEach.

Документация: Карта

Доступ к объекту data.listCard.cards.map или data['listCard']['cards']. Использование скобочной или точечной записи.

Документация: Средства доступа к собственности

let d = {
    "data": {
        "listCard": {
            "cards": [
                {
                    "id": "2",
                    "title": "벗꽃볼사람",
                    "content": "하이",
                    "createdAt": "2019-04-17T16:06:31.962772+00:00",
                    "creator": {
                        "id": "2",
                        "name": "운영자"
                    }
                },
                {
                    "id": "1",
                    "title": "벗꽃볼사람",
                    "content": "하이",
                    "createdAt": "2019-04-17T16:06:14.789277+00:00",
                    "creator": {
                        "id": "2",
                        "name": "운영자"
                    }
                }
            ]
        }
    }
}
// Map
// Or d['data']['listCard']['cards']
d.data.listCard.cards.map(v => {
    console.log(v)
});
// forEach
// Or d.data['listCard']['cards']
d.data.listCard.cards.forEach(v => {
    console.log(v)
});

Я использую map, когда мне нужно вернуть новый массив или объект.

// Map Returns Array
let data = d.data.listCard.cards.map(v => v);
console.log(data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...