JSON.stringify(),值带有单引号,键不带引号

时间:2020-09-24 15:38:45

标签: javascript node.js json typescript

在Javascript中:打印json对象

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

采用以下格式

{类型:“菲亚特”,型号:“ 500”,颜色:“白色”}

在console.log中。

但实际结果

{“类型”:“菲亚特”,“型号”:“ 500”,“颜色”:“白色”}

挑战在这里:

hackerrank print JSON object

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
}

2 个答案:

答案 0 :(得分:2)

JSON.stringify(),值不带单引号,键不带引号

不能。通过设计。

The JSON specification要求将所有属性的名称括在双引号中并解析为JSON字符串:

1。简介

[...]
对象是零个或多个名称/值对的无序集合,其中名称是字符串,值是字符串,数字,布尔值,空值,对象或数组。

4。对象

一个对象结构被表示为一对大括号,包围着零个或多个名称/值对(或成员)。 名称是字符串。每个名称后都有一个冒号,将名称与值分开。单个逗号将值与后面的名称分开。

答案 1 :(得分:2)

您可以使用以下代码:

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'}
相关问题