将 Javascript 对象解析为类似于 JSON 的字符串,但使用单引号
Parse Javascript Object to JSON-like string, but with single quotes
这是我转换成字符串的 Javascript 对象 (JSON)
var myObj = {
name: 'John',
age: 25,
group: 'O+'
}
console.log(JSON.stringify(myObj));
我需要带有单引号(撇号)(') 而不是双引号 (") 的输出。indexes/keys 上也没有引号或撇号。我希望它看起来像这样:
{name:'John',age:25,group:'O+'}
我试过这个:
var myObj = {
name: 'John',
age: 25,
group: 'O+'
}
console.log(JSON.stringify(myObj).replace(/"([^"]+)":/g, ':'));
这会删除 indexes/keys 上的引号,但值中仍然有引号。需要用撇号替换它们。尝试了更多的正则表达式,但它们没有用。
如果你在那个stringify的末尾添加更多的替换,你实际上可以得到你想要的。这是您的示例:
var myObj = {
name: 'John',
age: 25,
group: 'O+'
}
console.log(JSON.stringify(myObj).replace(/"([^"]+)":/g, ':').replace(/\"/g, '"')
.replace(/([\{|:|,])(?:[\s]*)(")/g, "'")
.replace(/(?:[\s]*)(?:")([\}|,|:])/g, "'")
.replace(/([^\{|:|,])(?:')([^\}|,|:])/g, "\'"));
您可以在 stackexchange 的不同论坛上找到这个确切的示例。这里是 link.
您可以使用 JSON.parse reviver
来格式化这些值。
var myObj = {
name: 'John',
age: 25,
group: 'O+',
bool:true,
hello:{
a:'bb'
}
}
const reviver =(key, value)=>{
if(typeof value === 'string'){
return `'${value}'`
}
return value
}
var a = JSON.parse(JSON.stringify(myObj), reviver);
console.log(JSON.stringify(a).replace(/"/g,''));
这是我转换成字符串的 Javascript 对象 (JSON)
var myObj = {
name: 'John',
age: 25,
group: 'O+'
}
console.log(JSON.stringify(myObj));
我需要带有单引号(撇号)(') 而不是双引号 (") 的输出。indexes/keys 上也没有引号或撇号。我希望它看起来像这样:
{name:'John',age:25,group:'O+'}
我试过这个:
var myObj = {
name: 'John',
age: 25,
group: 'O+'
}
console.log(JSON.stringify(myObj).replace(/"([^"]+)":/g, ':'));
这会删除 indexes/keys 上的引号,但值中仍然有引号。需要用撇号替换它们。尝试了更多的正则表达式,但它们没有用。
如果你在那个stringify的末尾添加更多的替换,你实际上可以得到你想要的。这是您的示例:
var myObj = {
name: 'John',
age: 25,
group: 'O+'
}
console.log(JSON.stringify(myObj).replace(/"([^"]+)":/g, ':').replace(/\"/g, '"')
.replace(/([\{|:|,])(?:[\s]*)(")/g, "'")
.replace(/(?:[\s]*)(?:")([\}|,|:])/g, "'")
.replace(/([^\{|:|,])(?:')([^\}|,|:])/g, "\'"));
您可以在 stackexchange 的不同论坛上找到这个确切的示例。这里是 link.
您可以使用 JSON.parse reviver
来格式化这些值。
var myObj = {
name: 'John',
age: 25,
group: 'O+',
bool:true,
hello:{
a:'bb'
}
}
const reviver =(key, value)=>{
if(typeof value === 'string'){
return `'${value}'`
}
return value
}
var a = JSON.parse(JSON.stringify(myObj), reviver);
console.log(JSON.stringify(a).replace(/"/g,''));