2012-12-03 156 views
1

你好我工作的項目是我必須更新填充JSON數據的數據庫。然而,這個數據看起來像這樣:JSON數據填充斜槓

{\「Id \」:\「1 \」,\「Sounding \」:\「1.075 \」,\「Ullage \」:\「0 \ \ 「完全\」:\ 「100 \」,\ 「CapacityM \」:\ 「3.918 \」,\ 「CapacityMT \」:\ 「3.918 \」,\ 「LCG \」:\ 「3.779 \」,\」 TCG \ 「:\」 0 \」,\ 「VCG \」:\ 「2.39 \」,\ 「FSM \」:\ 「4.492 \」}

然而,如果我的原始數據轉換爲JSON格式(從CSV文件),它似乎是這樣的:

{ 「ID」:1, 「聽起來」:1.075, 「缺量」:0.000, 「FULL」:100.000, 「容量」:3.918,「容量「:3.918,」LCG「:3.779,」TCG「:0.000,」VCG「:2.390,」FSM 「:0.000}

如何添加所有像第一個那樣的斜槓,以便它是正確的格式?我真的需要他們嗎?

+1

你使用什麼語言? – Isaac

+0

我有一個.js文件,其中的數據存儲像我上面張貼(第一個塊)。但是,我需要使用我在.CSV文件中獲得的新數據來更新此數據。由於程序正在使用它,因此它需要採用相同的格式。然而,如果我將它轉換爲JSON,它會出現在第二個塊中。 – user1873548

+1

你可以發佈你的輸入樣本,你如何將其轉換爲json? – Isaac

回答

0

這看起來像是某些編程語言的字符串/文本字面格式的數據已被轉義。

0

如果我沒有誤解任何東西,我想你可以用json_parse來解決這個問題。

下面是一個例子:http://jsfiddle.net/mqchen/yEJdq/

json_parse(data, function(key, value) { 
    var floatVal = parseFloat(value); 
    return !isNaN(floatVal) && isFinite(value) ? floatVal : value; 
}); 

它使用json_parse但將它發送它解釋看起來像數字作爲數字串的委託。

編輯:這裏是一個版本,也將所有鍵大寫(如果你還想要那個):http://jsfiddle.net/mqchen/yEJdq/2/

+0

非常感謝,但也許是一個非常愚蠢的問題,我將如何能夠使用此代碼? – user1873548

+0

您需要將您收到的數據(包含所有斜槓的數據)作爲字符串放入變量中。你可以命名變量「data」。然後調用json_parse函數,將數據變量作爲第一個參數,將委託(將字符串轉換爲數字的函數)作爲第二個參數。查看爲您製作的示例:http://jsfiddle.net/mqchen/yEJdq/ – mqchen

1

貌似在數據庫中的字符串的JavaScript(或C或Java的,你應該檢查)字符串轉義。最簡單的方法是使用org.apache.commons.lang3.StringEscapeUtils.escapeEcmaScript()org.apache.commons.lang.StringEscapeUtils.escapeJavaScript()方法。還要檢查這些類的其他方法。

另一種方法是將第一個JSON作爲字符串存儲在第二個臨時JSON對象中,然後將第二個JSON對象轉換爲字符串,然後獲取僅包含第一個JSON對象的轉義字符串值的子字符串(我認爲會是第二個JSON字符串中第三個和最後一個雙引號之間的部分...)。有點古怪,但避免添加額外的庫。