簡體   English   中英

當您在json中有兩行時,如何解決意外的令牌錯誤?

[英]How to resolve unexpected token error when you have two lines in json?

我從服務器上下載了要下載到文件中的內容,所以當我有多行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);
        });
    };

錯誤

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);

在線演示-https: //plnkr.co/edit/H3tcxWqMUFep4n3LSt1C?p=preview

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM