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つのコンマが値と次の名前を分けます。
