2012-06-05 53 views
0

我有一個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/) –

回答

0

如果您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中提到的,但是我得到了不同的結果。 –

0

看來你的serviceTypes不是數組,而是你的Object中的一個字符串。試試這個:

obj.params.serviceTypes = JSON.parse(obj.params.serviceTypes); 
return JSON.stringify(obj); 
相關問題