簡體   English   中英

將 Javascript 對象解析為類似 JSON 的字符串,但使用單引號

[英]Parse Javascript Object to JSON-like string, but with single quotes

這是我轉換為字符串 (JSON) 的 Javascript 對象

 var myObj = { name: 'John', age: 25, group: 'O+' } console.log(JSON.stringify(myObj));

我需要帶單引號(撇號)(')而不是雙引號(“)的輸出。索引/鍵上也沒有引號或撇號。我希望它看起來像這樣:

{name:'John',age:25,group:'O+'}

我試過這個:

 var myObj = { name: 'John', age: 25, group: 'O+' } console.log(JSON.stringify(myObj).replace(/"([^"]+)":/g, '$1:'));

這會刪除索引/鍵上的引號,但值中仍然有引號。 需要用撇號代替它們。 嘗試了更多正則表達式,但沒有奏效。

如果您在該字符串化的末尾添加更多替換,您實際上可以獲得您想要的。 這是你的例子:

 var myObj = { name: 'John', age: 25, group: 'O+' } console.log(JSON.stringify(myObj).replace(/"([^"]+)":/g, '$1:').replace(/\\\\"/g, '"') .replace(/([\\{|:|,])(?:[\\s]*)(")/g, "$1'") .replace(/(?:[\\s]*)(?:")([\\}|,|:])/g, "'$1") .replace(/([^\\{|:|,])(?:')([^\\}|,|:])/g, "$1\\\\'$2"));

您可以在 stackexchange 的其他論壇上找到這個確切的示例。 這是鏈接

您可以使用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,''));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM