如何在不使用 JSON.stringify 的情况下将 JSON 转换为字符串

How to convert JSON to String without using JSON.stringify?

本文关键字:JSON 情况下 转换 字符串 stringify      更新时间:2023-09-26

我有一个JSON对象,我想在Code Mirror中显示它。代码镜像仅需要字符串。当我做 JSON.stringify 时,它会搞砸数组而不仅仅是字符串的值。

例如。这是 JSON.stringify 的输出

{
     "version": "1.1",
     "sid": "ManagementService",
     "svcVersion": "0.1",
     "oid": "getCurrentStatsForServiceTypes",
     "params": {
          "serviceTypes": "['"rest'", '"wsdl'", '"database'", '"rss'"]"
     }
}

我希望输出为...

{
  "version": "1.1",
    "sid": "ManagementService",
    "svcVersion": "0.1",
    "oid": "getCurrentStatsForServiceTypes",
    "params": {
      "serviceTypes":["rest", "wsdl", "database","rss"]
    }
}

简而言之,我想在不影响值的情况下将类型从对象转换为字符串。

更新:JSON 对象是

{
  "version": "1.1",
    "sid": "ManagementService",
    "svcVersion": "0.1",
    "oid": "getCurrentStatsForServiceTypes",
    "params": {
      "serviceTypes":["rest", "wsdl", "database","rss"]
    }
}

我想要和字符串一样。这样的事情应该有效。

'{
  "version": "1.1",
    "sid": "ManagementService",
    "svcVersion": "0.1",
    "oid": "getCurrentStatsForServiceTypes",
    "params": {
      "serviceTypes":["rest", "wsdl", "database","rss"]
    }
}'

块引用

似乎您的服务类型不是数组,而是对象中的一个字符串。试试这个:

obj.params.serviceTypes = JSON.parse(obj.params.serviceTypes);
return JSON.stringify(obj);

如果serviceTypes参数是一个数组,它应该按照您指示的要序列化的方式进行序列化。 我有一种感觉,你在那个属性中放了一个字符串,而不是一个数组。

当我字符串化你的对象文字时,我得到

"{"version":"1.1","sid":"ManagementService","svcVersion":"0.1","oid":"getCurrentStatsForServiceTypes","params":{"serviceTypes":["rest","wsdl","database","rss"]}}"
数组

未转义,它是一个数组。