2013-12-09 4 views
-1

Я разбор API в NodeJS, которая возвращает эти данные, как строка:Javascript преобразовать объект в строке объект буквального

{ 
    "query": { 
     "count": 1, 
     "created": "2013-12-09T08:05:21Z", 
     "lang": "en-US", 
     "results": { 
      "rate": { 
       "id": "GBPEUR", 
       "Name": "GBP to EUR", 
       "Rate": "1.1938", 
       "Date": "12/9/2013", 
       "Time": "3:05am", 
       "Ask": "1.194", 
       "Bid": "1.1936" 
      } 
     } 
    } 

}

Я хотел бы преобразовать это в JavaScript Объект, чтобы я мог его разобрать, как var rate = obj.query.results.rate.Rate.

Я пробовал использовать Node's QueryString Parse(), но это не работает должным образом, и eval() тоже не работает. Как я могу достичь этого (очевидно, предпочтительно без использования eval())?

+3

Подсказка: что происходит с действительным JSON. – user2864740

+0

@ user2864740 Ну теперь я чувствую себя глупым! Ta. – Jascination

ответ

2

Вы бы использовать JSON.parse

JSON.parse(json_string) 
+1

Это предполагает, что строка является ** действительной ** JSON. Это может быть или не быть. Не будет ли целесообразной какая-либо санация? – ZenMaster

+0

Опубликованные данные действительны JSON, я уже начертал его перед ответом – adeneo

+0

Я знаю, что данные примера являются действительными JSON, я говорю, что это может быть не во всех случаях, в зависимости от того, какой API, из которого вызывается модуль узла. Для всех, кого вы знаете, это строка, которая похожа на объект. В принципе - что есть ошибка, и было бы разумно сделать какое-то защитное программирование (если это вообще возможно). Просто пытаюсь добавить что-то к уже прекрасному ответу. – ZenMaster

Смежные вопросы