如何将JSON转换为字符串而不使用JSON.stringify?

问题描述:

我有一个JSON对象,我想在代码镜像中显示它。代码镜像只需要字符串。 当我做JSON.stringify时,它将它的值锁定在一个数组而不是字符串。如何将JSON转换为字符串而不使用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"] 
    } 
}' 

块引用

+0

什么是你的json对象? – hvgotcodes

+0

如果你的对象真的包含一个数组(如你所建议的那样),那么你的JSON.stringify就会有问题。 – Bergi

+0

[没有“JSON对象”这样的东西。](http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/) –

如果您serviceTypes参数是一个数组,它应该序列为你指出你想它序列。我有一种感觉,你正在把一个字符串放入该属性中,而不是一个数组。

当我字符串化的对象字面我得到

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

阵列未逃脱,它的阵列。

+0

这是原始的JSON对象 { “版本”: “1.1”, “SID”: “ManagementService”, “svcVersion”: “0.1”, “OID”: “getCurrentStatsForServiceTypes”, “PARAMS”:{ \t \t \t“ serviceTypes “:” 休息”, “WSDL”, “数据库”, “RSS”] \t \t}} 如果您在Firebug控制台做JSON.stringify你会看到阵列是ESC模仿了。 对不起,但我没有看到任何方式来格式化我的评论中的代码。 –

+0

只需使用'char来制作内联代码。像'code'(不含空格)。当我把你的对象放在Firebug控制台中的'JSON.stringify()'时,它是好的,数组不会被转义(我试过'test = {...}; JSON.stringify(test);'并直接使用'JSON .stringify({...});'。 – Wirone

+0

我刚刚试过你在Firebug中提到的,但是我得到了不同的结果。 –

看来你的serviceTypes不是数组,而是你的Object中的一个字符串。试试这个:

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