2012-03-01 2 views
1

Есть ли функция un-JSON a String? Я предполагаю, что он не будет встроен в JQuery, но может ли он быть снят, написав скрипт, который управляет String? Я сталкиваюсь с этим в следующем.Un-JSON a String

Я использую API NYTimes, но он не поддерживает JSONP, поэтому я пытаюсь найти альтернативы для доступа к нему. Я не могу использовать прокси-сервер на стороне сервера в силу обстоятельств, в которых этот сценарий будет запущен. Я пытаюсь использовать YQL here, но текст возвращается очень грязно. Это текст JSON как String, и я не могу использовать возможности JSON-синтаксического анализа. Другими словами, текст, возвращаемый YQL, является JSON JSON.

См. this question для получения дополнительной информации.

+1

'result' - JSON. Вы можете проанализировать его с помощью 'JSON.parse':' var obj = JSON.parse (result); '. Затем 'obj.query.results.p' снова содержит JSON. Вы можете проанализировать его с помощью 'JSON.parse':' var p = JSON.parse (obj.query.results.p); 'и т. Д. ... если у вас есть строка и она содержит JSON, используйте' JSON.parse '. Всегда. Если 'JSON.parse' недоступен, включите эту библиотеку: https://github.com/douglascrockford/JSON-js –

+0

Это не работает. См. [Jsfiddle] (http://jsfiddle.net/3NdEY/6/). Он просто возвращает '[object Object]'. –

+2

Да, это стандартное строковое представление объекта (что означает, что он работает **). Что вы ожидаете от объекта? Лучшим методом отладки является 'console.log': http://jsfiddle.net/3NdEY/7/ (используйте Chrome, откройте консоль). Вы имеете целью получить доступ к свойствам объекта. Пример: http://jsfiddle.net/3NdEY/8/ –

ответ

2

JSON.parse() попробуйте использовать метод

+0

Я ответил так, а затем удалил его, потому что я читал, что OP написал «Я не могу использовать возможности JSON-анализа» ... хотя я не совсем понимаю, почему –

+1

Позвольте пояснить. Пожалуйста, подождите несколько секунд. спасибо –

0

попробовать

var myObject = eval('(' + myJSONtext + ')'); 
+0

Это наивный способ, который довольно небезопасен. Подумайте, что 'myJSONtext' должен быть изменен кем-то злым, чтобы он был равен« alert »(« взломан »)». – pimvdb

2

Если вы не хотите JSON.parse, но вы ищете Jquery образом, то вы можете использовать

$.parseJSON(jsonString);