ウェブサイト検索

javascript - 値にシングルクオートを使い、キーにはクオートを使わないJSON.stringify()


Javascriptで:JSONオブジェクトを出力する

var myObject = new Object;
myObject.type = "Fiat";
myObject.model = "500";
myObject.color = "White";

以下の形式で

{ 型: 'フィアット', モデル: '500', 色: '白' }

console.log で。

しかし実際の結果

{"タイプ":"フィアット","モデル":"500","色":"白"}

挑戦はここにある:

hackerrank JSONオブジェクトを印刷する

function printObjectProperty(myObject) {
  //Write your code here
console.log(JSON.stringify(myObject)); 
 //OR
console.log("{ type: '"+myObject.type+"', model: '"+myObject.model+"', color: '"+myObject.color+"'}"); //OR THERE COULD BE A BETTER GENERIC SOLUTION
}

回答 #1

以下のコードを使用できます:

var json = JSON.stringify(myObject);  // {"type":"Fiat","model":"500","color":"White"}
console.log(json);
var unquoted = json.replace(/"([^"]+)":/g, '$1:');
console.log(unquoted);  // {type:"Fiat",model:"500",color:"White"}
var result = unquoted.replaceAll("\"", "'");
console.log(result); // {type:'Fiat',model:'500',color:'White'}

回答 #2

値にシングルクオートを使わず、キーにクオートを使わない JSON.stringify()

できません。設計上そうなっています。

JSONの仕様では、すべてのプロパティ名を二重引用符で囲み、JSON文字列として解析する必要があります:

1. はじめに

[...]
オブジェクトは、0個以上の名前/値ペアの順序付けられていないコレクションで、名前は文字列であり、値は文字列、数値、ブール値、null、オブジェクト、または配列です。

4. オブジェクト

オブジェクト構造は、ゼロ個以上の名前/値のペア(またはメンバー)を囲む波括弧のペアとして表されます。名前は文字列です。各名前の後には1つのコロンがあり、名前と値を分けます。1つのコンマが値と次の名前を分けます。

関連記事