如何正确地在JSON.stringify中转义引号?

3
我使用JSON.stringify并获得以下结果。
{
  "key1": "1",
  "key2": "2",
  "key3": [
    {
      "jobCode": "full",
      "income": "1",
      "desc": "test"
    },
    {
      "jobCode": "xxx",
      "income": "2",
      "desc": "test"
    }
  ]
}

但是我需要获得以下结果。
{
      "key1": "1",
      "key2": "2",
      "key3": [
        {
          \"jobCode\": \"full\",
          \"income\": \"1\",
          \"desc\": \"test\"
        },
        {
          \"jobCode\": \"xxx\",
          \"income\": \"2\",
          \"desc\": \"test\"
        }
      ]
    }

我希望确保key3的值用引号括起来,并且内部值的引号得到转义。

我尝试使用JSON.stringify,但它给出了第一个结果,而我需要第二个结果。


1
您所期望的结果是无效的 JSON,它无法正确地进行 JSON.parse,这听起来是一个非常奇怪的需求。 - CertainPerformance
我需要它的原因是因为Spring Boot的Java Bean接受第二个。 - john
Spring Boot接受一个String,然后完成其余的操作。 - john
1个回答

5
如果您在key3上使用JSON.stringify,然后替换到对象中,它将作为字符串传递。
var obj = {"key1":"1","key2":"2","key3":[{"jobCode":"full","income":"1","desc":"test"},{"jobCode":"xxx","income":"2","desc":"test"}]};

var jsonKey3 = JSON.stringify(obj.key3);

obj.key3 = jsonKey3;

console.log(obj);

console.log(JSON.stringify(obj));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接