2014-10-30 4 views
-2

Следующий объект JSON, который я получилСинтаксический JSON объект - JavaScript

console.log(message.payloadString) 

, который выводит следующий объект:

"{FieldName = ул, FieldValue = {" MyValue ": { "Имя": GPS, "значение": 29,889}}}»

Используя следующий код, я хотел бы получить имя rpoperty, в данном случае "GPS"

var payload = JSON.parse(
    (message.payloadString).substring(
     (message.payloadString).indexOf('FieldValue=')+"FieldValue=".length, 
     (message.payloadString).length - 1) 
    ) 
); 

update(payload.myValue.Name); 

Однако, как только я запускаю код, он дает мне

Неожиданный токен ошибку R.

+0

Так отлаживать свой код, чтобы выяснить, какие значения не то, что вы ожидаете. –

+1

@ChrisHayes: Он пытается взять подстроку, которая является действительной JSON. –

+0

@squint Ах, да. Я неправильно прочитал круглые скобки. Благодарю. –

ответ

1

Ваша подстрока не содержит действительных JSON.

"Name":GPS 

приведет к ошибке синтаксического анализа.

Однако, я не в состоянии воспроизвести ваш неожиданный токен; Я получаю «G», а не «R».

x = '{FieldName=str, FieldValue={"myValue":{"Name":GPS,"value":29.889}}}' 

// x.length - 1 is redundant, but I've included it anyways 
x = x.substring(x.indexOf('FieldValue=') + 'FieldValue='.length, x.length - 1) 

// x == '{"myValue":{"Name":GPS,"value":29.889}}' 

JSON.parse(x) // error 

выходы:

Uncaught SyntaxError: Unexpected token G 
+0

Привет, жаль, извините за путаницу. Да, я хотел бы получить подстроку, содержащую действительный объект json, тогда я бы ее проанализировал. – casillas

+0

@casillas: Ваша строка не содержит допустимую строку JSON. –

+0

Могу ли я получить {"myValue": {"Name": GPS, "value": 29.889}} эту строку? – casillas