appcelerator Titanium не может анализировать JSON

Я новичок в титане и испытываю трудности с разбором JSON из экспорта mysql. json действителен, и я разочарован многими неудачными попытками. Для упрощения кода я поместил его ниже. Код просто остановился и сказал: [ОШИБКА] Ошибка сценария = Невозможно проанализировать строку JSON.

var win = Titanium.UI.currentWindow;


var hotdealjson = "{'hotdeal':[{'place':'bangkok','date':'4D3N','cost':'$4999up'},{'place':'tokyo','date':'3D2N','cost':'$3799up'}]}";


//read json
var response = JSON.parse(hotdealjson);
alert(response.hotdeal.length);

Спасибо и с уважением, Ричард


person Richard    schedule 24.02.2011    source источник


Ответы (3)


JSON на самом деле недействителен. Одинарные кавычки должны быть двойными.

Очень распространенная ошибка.

person Rich    schedule 25.02.2011

Вот что работает для меня:

var object = eval('(' + json_text + ')');

Это из «Кухонной раковины», и я видел, что этот стиль оценки пропагандируется в тексте Javascript.

person Dogweather    schedule 19.03.2011
comment
берегитесь... eval - опасный способ десериализации json. - person neoneye; 30.08.2011

Всегда лучше проверять действительность JSON перед использованием/анализом в любом месте! Для этого используйте JSONLint – средство проверки JSON.

person Manaday    schedule 10.01.2012
comment
Я не понимаю, почему кто-то должен оценивать ответ, даже если он правильный! На первый взгляд я обнаружил, что строка JSON @Richard недействительна, и именно поэтому я предлагаю ему использовать валидатор JSON! - person Manaday; 01.01.2013