2014-10-16 81 views
1

我需要一個JSON對象這樣的保留空間:JSON刪除空格和回車,但在報價

{ 
    "name": "This is a name", 
    "description": "This is the description" 
} 

並在引號去掉所有回車和空格NOT。所以結果應該是這樣的:

{"name":"This is a name","description":"This is the description"} 

引號內的空格需要保留。

jQuery解決方案很好。

謝謝!

-Matt

+0

你如何存儲對象?除非它作爲一個字符串或從某處作爲字符串讀取,否則沒有理由包含行返回或無關的空格。你能否提供更多細節? – nerdwaller 2014-10-16 11:18:49

+0

我的語言不準確。它不是一個對象,而是把它作爲一個字符串。我從表單中的textarea獲取JSON作爲文本。用戶正在輸入數據,很可能是通過複製和粘貼。 – mboles57 2014-10-16 15:00:04

+0

兩個版本都代表相同的JSON - 第一個只是「漂亮的印刷」。任何解析器都應該能夠將任何有效的JSON解析爲相應的表示。所以,實際上,你不需要它;)可能有JSON生成器通過指定選項參數來獲取表示並輸出「漂亮」的JSON或簡潔的JSON。 – CouchDeveloper 2014-10-17 05:34:28

回答

0

既然你從文本字段作爲字符串得到它,你應該能夠只使用內建現代的JavaScript:

var asObj = JSON.parse(asStr); 
// now you have an object for use. 
// assuming you want it back as a str 
var asStr2 = JSON.stringify(asObj); 

這應該做的大部分剝離您。

+0

這沒有像描述的那樣工作,換行符仍然存在於最終的asStr2 – LessQuesar 2018-01-30 21:59:00

+1

@LessQuesar - 我不確定你是否在尋找與OP相同的問題 - 在他們的評論下面,他們澄清說,輸入數據是作爲字符串(來自用戶的輸入)。 'JSON.parse(inputData)'將給出對象表示(它沒有引號外部空間的概念)。 'JSON.stringify(obj)'會將它變成它們顯示的第二個代碼塊(它在StackOverflow註釋中被截斷...)。 – nerdwaller 2018-01-30 23:24:01

+0

我的不好,這是一個類似但不同的問題,然後用你的代碼解決。我同意您的解決方案按預期工作。 – LessQuesar 2018-01-31 06:33:22