Javascript 使用JSON解析时保留引号
我无法在搜索时用某种方式表达这个问题,从而产生任何结果,所以请原谅我,如果有一个明显的地方有人问过这个问题 从字符串转换时,我希望所有引号都保留在JSON中 我的UI有一个文本字段(字符串),用户将在其中键入一些JSON,如下所示:Javascript 使用JSON解析时保留引号,javascript,json,typescript,Javascript,Json,Typescript,我无法在搜索时用某种方式表达这个问题,从而产生任何结果,所以请原谅我,如果有一个明显的地方有人问过这个问题 从字符串转换时,我希望所有引号都保留在JSON中 我的UI有一个文本字段(字符串),用户将在其中键入一些JSON,如下所示: { "example": "example" } 我希望所有引号都保留在JSON对象中。但是,当我在上面的字符串上运行JSON.parse()时,会得到以下结果: { example: "example"
{ "example": "example" }
我希望所有引号都保留在JSON对象中。但是,当我在上面的字符串上运行JSON.parse()时,会得到以下结果:
{ example: "example" }
如何避免删除引号?JSON.parse()返回的javascript对象不是JSON。对象中不需要引号(除非属性名称中有特殊字符),并且可以在代码中使用引号或不使用引号访问该属性
const myObj = { example: "example" };
以下两项都是有效的
console.log(myObject.example)
console.log(myObject["example"])
当您再次使用JSON.stringify()时,它将在JSON字符串中有有效的引号,并且是:
{ "example": "example" }
JSON.parse()
返回一个javascript对象,因此您得到的结果是正确的
您的后端需要一个JSON字符串,而不是javascript对象,因此您需要JSON.stringify()
您的javascript对象来获取后端需要的JSON字符串
let userinput='{“示例”:“示例”};
让userobject=JSON.parse(userinput);
让resultjson=JSON.stringify(userobject);
log(用户输入);
log(userobject);
log(resultjson);
产生
{“示例”:“示例”}{example:'example'}
{“示例”:“示例”}
首先,你为什么要这么做?引号不是必需的。在这种情况下,引号是必需的,因为后端需要引号,并且它会返回一个错误,因此您将其作为字符串发送。是吗?否,我正在从表单上的一组字段形成请求。大多数字段都是字符串或数字,但是其中一个字段需要有效的JSON。这个请求然后以JSON的形式发送。好的,但仍然是通过HTTP发送的,所以是一个字符串。你的问题肯定不清楚。请用更具体的信息更新您的问题。看起来你需要JSON.stringif我想我应该再添加一点上下文。从该文本字段生成的JSON将是发送到后端的请求的一部分。这很好,当您对其进行字符串化时,它的引号将是有效的JSON。您似乎将实际对象与json混淆了。parse()返回一个实际的object这个问题实际上在我们的代码库中似乎更为严重,字符串/JSON对象之间有很多触发器,我认为在这些转换过程中会出现混乱。为这个问题道歉并占用大家的时间。当我这样做时,它会在花括号周围加上引号,这是我不想要的。@Sittling听起来你在问题中没有正确解释你的问题。提供一个演示您的实际问题的示例。这个问题实际上在我们的代码库中更为严重,字符串/JSON对象之间有很多触发器,我认为在这些转换过程中会出现混乱。为这个问题道歉,并占用大家的时间。