Я пытался разобрать эту строку JSON:
{"query": "мое расписание сегодня", "тип": "временная шкала", "название": "Сегодня события:", "время": ["2015-07-06\n20: 30: 00"] резюме ": [" Еженедельная встреча + Show & Tell (Hangouts) "]," description ": [" Weekly Bullets (20 minutes): "]}
Это действительный JSON (проверяется на jsonformatter.curiousconcept.com). Тем не менее, я получил erorr:
SyntaxError: Неожиданный токен
in (файл angular.js):
function fromJson(json) {
return isString(json)
? JSON.parse(json)
: json;
}
У кого-нибудь есть идеи?
Проблема заключается в \n
в тексте, вам нужно убежать от нее \\n
var json = '{"query": "my schedule today","type": "timeline","title": "Today events:","time":["2015-07-06\\n20:30:00"],"summary":["Weekly meeting + Show & Tell (Hangout)"],"description":["Weekly Bullets (20 minutes): "]}'
console.log(JSON.parse(json))
snippet.log(JSON.stringify(JSON.parse(json)))
<!-- Provides the 'snippet' object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
Если строка, с которой вы работаете, является результатом внешнего вызова, и вы не можете вручную изменить \n
на \\n
, это можно сделать с помощью простой замены:
json = json.replace(/\\n/g, "\\\n");
Здесь вы, \n
токен в своей строке, удалите его:
var data = '{"query": "my schedule today","type": "timeline","title": "Today events:","time":["2015-07-06\n20:30:00"],"summary":["Weekly meeting + Show & Tell (Hangout)"],"description":["Weekly Bullets (20 minutes): "]}'.replace('\n', '');
var data = JSON.parse(data);
alert(data.query);
Надеюсь это поможет.