Javascript 当json中有两行代码时,如何解决意外的令牌错误?

Javascript 当json中有两行代码时,如何解决意外的令牌错误?,javascript,angularjs,json,Javascript,Angularjs,Json,我有从服务器下载到文件中的内容,所以当我有多行json时,我无法下载文件,我得到了意外的标记,我相信这个异常是因为新行字符,我如何解决这个问题 来自服务器的数据 {"level":"info","message":"Test Log messages"} {"level":"info","message":"Test Log messages"} {"level":"info","message":"Test Log messages"} ctrl.js $scope.downloa

我有从服务器下载到文件中的内容,所以当我有多行json时,我无法下载文件,我得到了意外的标记,我相信这个异常是因为新行字符,我如何解决这个问题

来自服务器的数据

{"level":"info","message":"Test Log  messages"}
{"level":"info","message":"Test Log  messages"}
{"level":"info","message":"Test Log  messages"}
ctrl.js

  $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);
        });
    };
错误


有效的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);

在线演示-

这些对象是否在一个数组中?如果是,则需要逗号来分隔它们。来自服务器的数据不是有效的JSON,因此无法将其解析为JSON。正如@developer033所说,您可能希望将这些对象放在JSON阵列中。我正在从服务器获取文件名和内容。感谢您的帮助,它让我更好地了解需要在何处进行修复。感谢againFor sure friend,请注意,如果您使用
$http
模块,并且当服务器返回有效的json响应(标题+内容)时,angular将自动将json字符串解析为对象。阅读
$http
模块了解更多信息
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);