如何在不使用JSON.stringify的情况下将JSON转换为String?

时间:2012-06-05 11:42:16

标签: javascript json codemirror

我有一个JSON对象,我想在Code Mirror中显示它。 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"]
    }
}

简而言之,我想将Type从Object转换为String而不影响值。

更新: 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"]
    }
}'
  

块引用

2 个答案:

答案 0 :(得分:0)

如果您的serviceTypes参数是一个数组,那么它应该序列化,因为您指示要序列化它。我有一种感觉,你在该属性中放入一个字符串,而不是数组。

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

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

数组没有转义,它是一个数组。

答案 1 :(得分:0)

您的serviceTypes似乎不是数组,而是Object中的字符串。试试这个:

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