2013-02-16 6 views
1

Хорошо в моем коде на питоне. У меня есть этотНевозможно разобрать json, отправленный с канала

foo = "aaa"; //foo and bar are variables that change, just an example here 
    bar = "bbb"; 
    json = {"here": foo, "there": bar} //also tried single quotes 
    message = simplejson.dumps(json) //also tried just json instead of simplejson 
    channel.send_message(user_id(), message) 

В JavaScript

onMessage = function(m) { 
    var a = JSON.parse(m.data); 
    alert(a.here); // foo should pop up but it doesnt 
    } 

Похоже, метод синтаксического анализа не работает. Предупреждение не появляется. Если я удалю синтаксическую линию и поставлю ее, кроме предупреждения, если я просто изменю предупреждение и продолжаю синтаксический анализ, он все равно сделает что-нибудь;

alert(m.data) // this prints out {"here": "aaa", "there": "bbb"} 

Так что idk почему он не разбирается вправо. Я предполагаю, что это имеет какое-то отношение к цитатам. Наверное, у меня снова возникают проблемы с ними.

UPDATE

пожалуйста, посмотрите на мой ответ ниже, я решил эту проблему.

+0

Теперь вы можете просто «импортировать json», а не simplejson на движок приложения FYI. –

+0

Да, я тоже это пробовал. не работает. – btevfik

+0

Вы пытались просто жестко кодировать данные в '' var a = JSON.parse (m.data) ', таким образом, опровергая ваши опасения по поводу того, что JSON.parse не работает. – sotapme

ответ

1

Так что я решил эту проблему, как это;

var a = JSON.parse(String(m.data)); 

похоже, что m.data не является строкой в ​​конце концов, поэтому вам нужно ее бросить.

0

Может быть, попробовать что:

alert (m.data['here']);

+0

возвращает undefined. – btevfik

+0

попробуйте 'alert (a)'? –

+0

№. не работает – btevfik