Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用JSON解析时保留引号_Javascript_Json_Typescript - Fatal编程技术网

Javascript 使用JSON解析时保留引号

Javascript 使用JSON解析时保留引号,javascript,json,typescript,Javascript,Json,Typescript,我无法在搜索时用某种方式表达这个问题,从而产生任何结果,所以请原谅我,如果有一个明显的地方有人问过这个问题 从字符串转换时,我希望所有引号都保留在JSON中 我的UI有一个文本字段(字符串),用户将在其中键入一些JSON,如下所示: { "example": "example" } 我希望所有引号都保留在JSON对象中。但是,当我在上面的字符串上运行JSON.parse()时,会得到以下结果: { example: "example"

我无法在搜索时用某种方式表达这个问题,从而产生任何结果,所以请原谅我,如果有一个明显的地方有人问过这个问题

从字符串转换时,我希望所有引号都保留在JSON中

我的UI有一个文本字段(字符串),用户将在其中键入一些JSON,如下所示:

{ "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对象之间有很多触发器,我认为在这些转换过程中会出现混乱。为这个问题道歉,并占用大家的时间。