【发布时间】:2019-12-11 17:25:46
【问题描述】:
我的环境是nodejs
let z = await x.text();
console.log(z)
let y = JSON.parse(z)
控制台日志是
{
"errorCode":0,
"errorMsg":"success",
"result":{
"msg":"\u4e70\u5bb6\u5df2",
"uid":"104",
"username":"\u738b\u626d",
"userphone":"1565777778",
"address":"\u4e0a\u6d77",
"price":"5.00",
"trade_state":"TRADE_SUCCESS",
"hk_orderid":"1575524694820"
}
}
(node:21) UnhandledPromiseRejectionWarning: SyntaxError: Unexpected 位置 0 处的 JSON 中的标记
当我复制 json 字符串并将其粘贴到
JSON.parse('{"errorCode":0,"errorMsg":"success","result":{"msg":"\u4e70\u5bb6\u5df2","uid":"104","username":"\u738b\u626d","userphone":"1565777778","address":"\u4e0a\u6d77","price":"5.00","trade_state":"TRADE_SUCCESS","hk_orderid":"1575524694820"}}')
在浏览器控制台内
解析正确
编辑:有人问json,实际上json正是我上面粘贴的
{
"errorCode":0,
"errorMsg":"success",
"result":{
"msg":"\u4e70\u5bb6\u5df2",
"uid":"104",
"username":"\u738b\u626d",
"userphone":"1565777778",
"address":"\u4e0a\u6d77",
"price":"5.00",
"trade_state":"TRADE_SUCCESS",
"hk_orderid":"1575524694820"
}
}
这也是console.log(z)的输出
下面是一些进一步的日志,注意只有最后一个有异常
processing job id 19121211173822287103
12/12/2019 12:17:45 PM {"errorCode":0,"errorMsg":"success","result":{"msg":"\u7b49\u5f85\u8cb7\u5bb6\u4ed8\u6b3e","uid":"103","username":"\u674e\u767d","userphone":"18912345678","address":"\u7ef4\u4e5f\u7eb3\u9152\u5e97(\u77f3\u82b1\u897f\u8def\u5e97)","price":"4.00","trade_state":"WAIT_BUYER_PAY","hk_orderid":"1576120657890"}}
12/12/2019 12:17:50 PM processing job id 19121211173822287103
12/12/2019 12:17:50 PM {"errorCode":0,"errorMsg":"success","result":{"msg":"\u7b49\u5f85\u8cb7\u5bb6\u4ed8\u6b3e","uid":"103","username":"\u674e\u767d","userphone":"18912345678","address":"\u7ef4\u4e5f\u7eb3\u9152\u5e97(\u77f3\u82b1\u897f\u8def\u5e97)","price":"4.00","trade_state":"WAIT_BUYER_PAY","hk_orderid":"1576120657890"}}
12/12/2019 12:17:55 PM processing job id 19121211173822287103
12/12/2019 12:17:57 PM
12/12/2019 12:17:57 PM {"errorCode":0,"errorMsg":"success","result":{"msg":"\u4e70\u5bb6\u5df2\u652f\u4ed8","uid":"103","username":"\u674e\u767d","userphone":"18912345678","address":"\u7ef4\u4e5f\u7eb3\u9152\u5e97(\u77f3\u82b1\u897f\u8def\u5e97)","price":"4.00","trade_state":"TRADE_SUCCESS","hk_orderid":"1576120657890"}}
12/12/2019 12:17:57 PM (node:21) UnhandledPromiseRejectionWarning: SyntaxError: Unexpected token in JSON at position 0
12/12/2019 12:17:57 PM at JSON.parse (<anonymous>)
12/12/2019 12:17:57 PM at /usr/src/app/routes/notify.js:39:26
【问题讨论】:
-
你能粘贴
console.log(z)的结果吗 -
stackoverflow.com/a/20392392/8813684 检查它是否是 json,然后如果抛出任何异常,则从这里返回到 API 的响应。
-
@NareshKumar 上面粘贴了 console.log(z) 的结果:
-
它是有效的 json {"errorCode":0,"errorMsg":"success","result":{"msg":"\u4e70\u5bb6\u5df2","uid":" 104","username":"\u738b\u626d","userphone":"1565777778","address":"\u4e0a\u6d77","price":"5.00","trade_state":"TRADE_SUCCESS"," hk_orderid":"1575524694820"}}
-
你能告诉我
x到底是什么吗?为什么你在 await 中使用 .text?
标签: javascript node.js json utf-8 chinese-locale