Я получаю строку ниже по течению.У меня нет контроля над ним.
b"{'text': 'Airtel Tower (@ BT Tower in Chasdmzoa, Delhi)', 'sentiment': '0.25'}"
Я хочу изменить строку на JSON.Итак, первое, что я сделал, это удалил предшествующий b '....' (upstream - это программа на python, которая выдает строку utf-8 в качестве вывода).Поэтому я удаляю 'b', используя substr ..
str = msg.payload.substr(1);
Затем я пытаюсь преобразовать строку в JSON, используя JSON.stringify и JSON.parse ,
console.log(typeof(str));
var t = JSON.stringify(str);
console.log(typeof(t));
var t = JSON.parse(t);
console.log("First: " + t);
var t = JSON.parse(t);
console.log("Second " + t);
x = t.text;
y = t["text"];
console.log(x + " ---- " + y);
Вывод на консоль:
string
string
First: "{'text': 'Airtel Tower(@ KT Tower in Bang, Greater K
n), 'sentiment': '0.25'}"
Second {'text': 'Vodafone Tower (@ LT Tower in Delhi, Greater K
), 'sentiment': '0.25'}
undefined ---- undefined
Не удается преобразовать его в объект, даже если JSON.stringify удалил лишние кавычки и т. д. и JSON.parse , похоже, не работает.Что я делаю не так?