2013-02-27 3 views
-1

У меня есть строка, ниже которой я пытаюсь преобразовать объект JSON, и использую синтаксис var json = JSON.parse(myjson);, но он говорит ожидаемый токен}, но я не вижу, где?{name: "Name", value: 1} недействителен JSON?

Кто-нибудь знает, где это будет?

[{name:"After", value:1},{name:"watching", value:1},{name:"you", value:1},{name:"at", value:3},{name:"Birmngm", value:1},{name:"my", value:1},{name:"new", value:2},{name:"athlete", value:1},{name:"to", value:1},{name:"follow.", value:1},{name:"Love", value:2},{name:"the", value:4},{name:"passion,", value:1},{name:"enthusiasm", value:1},{name:"and", value:3},{name:"big", value:1},{name:"smiles!!", value:1},{name:"Long", value:1},{name:"may", value:1}] 
+6

это хороший инструмент для этого: http://jsonlint.com/ –

+1

Нет, это не так. Имена свойств пропускают строковые разделители. – Bergi

+0

Покажите нам код, пожалуйста. Вы ошиблись в простом объектном литерале для JSON? – Bergi

ответ

8

Это совершенно недействительный JSON. Каждый ключ ДОЛЖЕН быть указан. например

[{"name":"After","value":1}, .... 
    ^-- ^--  ^-- ^-- 
+0

Спасибо :) Я не понял, что – user1840255

+1

не генерируют строки json самостоятельно. это слишком больно/ненадежно. используйте json-интерфейсы вашего хозяина, например. php 'json_encode()'. –

+0

@MarcB: Но скопируйте ассоциативные массивы PHP вручную? В какой-то момент данные должны быть вставлены в систему, а JSON (если правильно отстут) - довольно простой формат. – Bergi

1

Недействительный json. Вы должны поставить кавычки вокруг ключей как этого

{ 
    "name": "After", 
    "value": 1 
}, 

JSONLint является отличным инструментом для отладки проблем JSON, можно сказать, является ли конкретная строка действительна и указать вам, где проблема.

1

Это действительный JavaScript, не действительный JSON. Вы можете открыть консоль chromes разработчиков и stringify это, чтобы получить действительный JSON:

[{"name":"After","value":1},{"name":"watching","value":1},{"name":"you","value":1},{"name":"at","value":3},{"name":"Birmngm","value":1},{"name":"my","value":1},{"name":"new","value":2},{"name":"athlete","value":1},{"name":"to","value":1},{"name":"follow.","value":1},{"name":"Love","value":2},{"name":"the","value":4},{"name":"passion,","value":1},{"name":"enthusiasm","value":1},{"name":"and","value":3},{"name":"big","value":1},{"name":"smiles!!","value":1},{"name":"Long","value":1},{"name":"may","value":1}] 
1

Предоставленная строка является правильным, если вы пытаетесь построить объект JS. Однако для создания правильной строки JSON вам необходимо окружить клавиши в кавычках. следовательно, вы должны инкапсулировать name и value в двойные или одинарные кавычки. вы можете использовать jsonlint.com для подтверждения.

Смежные вопросы