Разбор JSON и преобразование в строку

В настоящее время я работаю над проектом Javascript, где мне нужно анализировать тонны данных. Проект требует, чтобы я проанализировал некоторые данные JSON и внес определенные данные в другой массив. Прямо сейчас я использую метод JSON.stringify и могу использовать console.log для всех данных, которые мне нужны. Данные выглядят примерно так:

{
"type": "FeatureCollection",
"features": [
    {
        "type": "Feature",
        "geometry": {
            "type": "Polygon",
            "coordinates": [
                [
                    [
                        -85.3865810000125,
                        33.90171899971196
                    ],
                    [
                        -85.38659500025622,
                        33.9017919996593
                    ],

да, это не все данные - это около 1200 страниц! Я вставил только в верхний сегмент. Все, что мне действительно нужно, это как добраться до аспекта координат и в массив. Итак, что я сейчас делаю, так это:

var work = JSON.stringify(response, null, 4)
console.log(work);

Что дает мне приведенный выше ответ. Однако я не так хорошо знаком с JSON.stringify, поэтому, если я это сделаю:

console.log(work.type);

Пытаясь узнать, какое значение имеет тип, я получаю ответ undefined. Теперь, если я попытаюсь сделать это:

var work = JSON.parse(response)
console.log(work);

Я получаю ответ: VM296: 1 Uncaught SyntaxError: Неожиданный токен o в JSON в позиции 1

Таким образом, я не могу получить проанализированные данные, которые я хочу получить, и которые будут данными координат. Любая помощь с использованием stringify очень поможет мне. Я много читал о том, как он превращает данные в строку, но мало что видел о том, как их анализировать. Должен ли я использовать синтаксический анализ? Спасибо за помощь!


person ravenUSMC    schedule 19.08.2016    source источник
comment
Это недопустимый json   -  person Nihar Sarkar    schedule 19.08.2016
comment
Вы не заканчиваете JSON, и, как сказал @NiharSarkar, он также недействителен.   -  person baranskistad    schedule 19.08.2016
comment
просто выполните response.type, чтобы получить свойство type. нет необходимости вводить его в строку, это уже объект javascript.   -  person Daniel Lizik    schedule 19.08.2016
comment
JSON не закончен, потому что его длина составляет 1200 страниц! Поэтому я не хочу вставлять это сюда — извините за путаницу!   -  person ravenUSMC    schedule 19.08.2016
comment
что вы получаете, когда запускаете console.log(ответ)? Это объект? Это действительный json? Это щенок?   -  person    schedule 19.08.2016
comment
Не похоже, что JSON, который фактически используется, недействителен. Это просто не полностью скопировано в этом вопросе («тонны данных»). @Daniel_L прав, response уже является объектом, так что просто возьмите response.type. Вам нужно только анализировать, если это строка JSON, и вам нужно ее свойство, и вам нужно строчить только в том случае, если вам нужно преобразовать объект в строку. В этом случае вам не нужно ни того, ни другого.   -  person Sebastian Simon    schedule 19.08.2016
comment
Кстати, «Неожиданный токен o» означает, что объект, скорее всего, преобразовался в строку "[object Object]".   -  person Sebastian Simon    schedule 19.08.2016


Ответы (1)


Вам не нужно использовать stringify или parse для этого. Объект ответа, который вы получаете, уже является объектом javascript, поэтому вы можете нормально ссылаться на его свойства.

response.type; // => "FeatureCollection"

Если вы попытаетесь stringify ответить, он потеряет свое свойство type, например:

typeof "some string".someProperty; // => undefined

person Daniel Lizik    schedule 19.08.2016
comment
Ага! Я попробовал response.type и получил именно то, что вы сказали! Спасибо за помощь и объяснение! Время покопаться и найти то, что мне нужно! - person ravenUSMC; 19.08.2016