JSON.parse给出了意外的令牌错误

Ack*_*man 0 javascript json angularjs

我打电话给api时收到这些数据

[{"DispatchNo":"xxxxx","DispatchDate":"xxxxxxx","Complete":"xxx","CustomerID":"xxxxx","Name":"xxxxxx","Contact":"","Phone":"xxxxx","ShipPhone":"xxxx","PurchaseOrder":"xxxx","OrderLoads":"5","OrderQty":"125","FreightUnitID":"x 
Run Code Online (Sandbox Code Playgroud)

我的controoller.js代码表示失败的是:

var jsonString = result.data.replace(/\\/g, "\\");
                var orderFromApex = JSON.parse(jsonString);
                orderFromApex = orderFromApex.substring(0);
                console.log(orderFromApex);
                //orderFromApex += '"';
                orderFromApex = JSON.parse(orderFromApex);
                console.log(orderFromApex);
Run Code Online (Sandbox Code Playgroud)

我收到错误语法错误:JSON在JSON.parse()的位置898处的JSON中出现意外的令牌C我相信它在orderFromApex = JSON.parse(orderFromApex)失败了.我也是我在上面发布的控制台记录orderFromApex.到底是怎么回事?我的JSON响应有问题吗?

Nik*_*igi 5

您的API似乎无法正确转义字符."例如,在它们应该被关闭之前,它们在关闭它们的字符串中显示为未转义.

{"example": "Hello "World"!"}应该是{"example": "Hello \"World\"!"}.

试图解析第一个例子将抛出SyntaxError: Unexpected token W in JSON at position 20.那是因为解析器会查看"之前的World并且认为哦,字符串已经结束了,W之后这个奇怪的做法是什么?.