要解决JSON.stringify()
自动将中文转译成Unicode的问题,可以通过使用第三方库 json-bigint
或者自行编写转换函数来实现。
下面分别给出两种方法的使用示例:
json-bigint
:sh
npm install json-bigint
json-bigint
:javascript
const JSONbig = require('json-bigint');
JSONbig.stringify()
代替JSON.stringify()
,即可将 JSON 对象转换成字符串格式,保留中文字符。javascript
const data = {
name: '张三',
age: 18,
id: 12345678901234567890n
};
const jsonString = JSONbig.stringify(data).replace(/\\u/g, '%u');
console.log(jsonString);
运行结果:{"name":"张三","age":18,"id":12345678901234567890}
javascript
function replacer(key, value) {
if (typeof value === 'string') {
return value.replace(/[^\x00-\xff]/g, function(match) {
return '\\u' + match.charCodeAt().toString(16);
});
}
return value;
}
JSON.stringify()
的第2个参数,即可将非ASCII字符转换成Unicode字符串。javascript
const data = {
name: '张三',
age: 18,
id: 12345678901234567890n
};
const jsonString = JSON.stringify(data, replacer);
console.log(jsonString);
运行结果:{"name":"\u5f20\u4e09","age":18,"id":12345678901234567890}
以上两种方式,都能实现将中文字符正常转化成 JSON 字符串并输出,读者可以根据自己的需要选择其中一种。
本文链接:http://task.lmcjl.com/news/9435.html