JSON в JavaScript словарь - PullRequest
       4

JSON в JavaScript словарь

0 голосов
/ 27 мая 2018

У меня есть данные JSON в следующей структуре, и я пытаюсь проанализировать их, чтобы работать с данными с использованием javascript.

Данные JSON

{
    "FirstItem": {
        "id": 1,
        "type": "foo",
        "colours": ["blue", "black", "green"],
        "reviews": {
            "positive": ["The best", "unbelievable", "Awesome"],
            "negative": ["Sh*t", "Awful", "Dire", "Terrible", "Appalling"],
            "neutral": ["OK", "Meh"]
        }
    },
    "SecondItem": {
        "id": 2,
        "type": "bar",
        "colours": ["red", "white", "yellow"],
        "reviews": {
            "positive": ["Great", "Amazing", "Fantastic", "Perfect", "Uplifting"],
            "negative": ["Terrible", "Shocking", "abysmal"],
            "neutral": ["OK", "Standard", "Vanilla"]
        }
    }
}

Я пытаюсь проанализировать это с помощью JSON.parse(), однако это возвращает следующую ошибку:

JSON.parse: unexpected character at line 1 column 2 of the JSON data

Я ранее работал с этимта же структура JSON с использованием C #, и пришлось десериализовать это в словарь - информацию можно найти в этом посте

Вопрос

Как я могу разобрать этот JSON в объект javascript, который позволит мнезациклить и оценить каждый элемент?

Ответы [ 2 ]

0 голосов
/ 27 мая 2018

JSON - это объект Javascript с ключом в двойных кавычках, как в примере.Таким образом, вам не нужно анализировать это снова, см. для объяснения.Вы можете получить к нему доступ с помощью его ключа или, если вы хотите получить отзывы от SecondItem, вы можете получить к ним доступ с помощью:

SecondItem.reviews

или

SecondItem['reviews']
0 голосов
/ 27 мая 2018

Очевидно, вы пытаетесь проанализировать уже проанализированный объект

x = {A:1};       // A javascript object
JSON.parse(x);   // Error

это происходит потому, что JSON.parse сначала преобразует объект в строку, получая "[object Object]", а затем попытается проанализировать эту строку.

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