gpt4 book ai didi

javascript - 无法解析包含 unicode 十六进制字符的 JSON 字符串

转载 作者:行者123 更新时间:2023-11-30 07:32:45 24 4
gpt4 key购买 nike

var mystring = '{"Customers":[{"CustomerCity":"Zaragoza","CustomerFName":"Ana","CustomerAddress":"C/ El Temple, 9 2\\xbaB","CustomerCountry":"es"}]}';

var myparsestring = JSON.parse(mystring);

错误:

Unexpected token x in JSON

最佳答案

那是无效的 JSON,请参阅字符串规则 on json.org . JSON 中没有 \x 转义。 \xbaB 应该是一个 unicode 转义,\u0baB(注意必须正好有四个十六进制数字):

var mystring ='{"Customers":[{"CustomerCity":"Zaragoza","CustomerFName":"Ana","CustomerAddress":"C/ El Temple, 9 2\\u0baB","CustomerCountry":"es"}]}';

var obj = JSON.parse(mystring);
console.log(obj);

您可以尝试预处理字符串:

mystring = mystring.replace(/\\x([0-9a-f]{1,4})/gi, function(m, c0) {
return "\\u" + ("0000" + c0).slice(-4);
});

var mystring ='{"Customers":[{"CustomerCity":"Zaragoza","CustomerFName":"Ana","CustomerAddress":"C/ El Temple, 9 2\\xbaB","CustomerCountry":"es"}]}';

// Fixing it
mystring = mystring.replace(/\\x([0-9a-f]{1,4})/gi, function(m, c0) {
return "\\u" + ("0000" + c0).slice(-4);
});

var obj = JSON.parse(mystring);
console.log(obj);

...但实际上,修复 JSON 的源以生成有效的 JSON 会好得多,而以上是一个非常幼稚的修复。

关于javascript - 无法解析包含 unicode 十六进制字符的 JSON 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45708851/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com