我有从服务器下载到文件中的内容,所以当我有多行 json 时,我无法下载文件,我得到了意外的 token ,我相信这个异常是因为换行符,我该如何解决这个问题?
来自服务器的数据
{"level":"info","message":"Test Log messages"}
{"level":"info","message":"Test Log messages"}
{"level":"info","message":"Test Log messages"}
控制键
$scope.downloadFile = function(message){
DitFactory.getFile(message).then(function(response,$window){
var data = JSON.stringify(response.data);
var blob = new Blob([data], { type: 'text/plain;charset=utf-8' });
FileSaver.saveAs(blob, 'text.txt');
console.log(response);
});
};
错误
angular.js:13708 SyntaxError: Unexpected token { in JSON at position 49
at Object.parse (native)
at fromJson
最佳答案
有效的 json 响应应该是这样的:
[
{"level":"info","message":"Test Log messages"},
{"level":"info","message":"Test Log messages"},
{"level":"info","message":"Test Log messages"}
]
更改您的服务器响应以返回有效值。
否则,如果出现以下情况,则像这样解析响应:
var response = '{"level":"info","message":"Test Log messages"}\n{"level":"info","message":"Test Log messages"}\n{"level":"info","message":"Test Log messages"}';
var items = response.split('\n');
items = items.filter(function(item) {
return item
})
.map(function(item) {
return angular.fromJson(item);
});
console.log(items);
关于javascript - 当你在 json 中有两行时,如何解决意外的 token 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38207859/