2012-02-21 31 views
0

我有我的AJAX提交的表單一個奇怪的問題......我在形式的文件上傳,並以某種方式從服務器的有效JSON對象現在是一個String ...jsonObject是一個字符串 - 如何轉換爲json?

if (typeof jsonObject == 'string') 
     console.log('yes, it's a string'); //yes, it's a string 

console.log(jsonObject); // { "status":"success", "data":"Updated profile successfully"} 

所以,沒有文件上載和console.log(jsonObject)形式的enctype:multipart返回>Object帶有「成功」和「數據」屬性。通過表單中的文件上傳,jsonObject是一個字符串,就像你上面看到的那樣。

任何想法可能導致什麼?或者我怎樣才能將字符串轉換回有效的JSON對象?

預先感謝您。

+0

JSON只在JavaScript中存在的字符串......所以你的請求有點混亂。我假設你想要一個* JavaScript *對象。 – 2012-02-21 10:24:31

+0

是的,你是對的,並不完全知道它的區別。我需要一個jsObject - 正確! – matt 2012-02-21 10:42:25

回答

3

如何將字符串轉換回有效的[..]對象?

jsonObject = JSON.parse(jsonObject); 
+0

這不會導致一個JSON對象(不管是什麼),而是一個JavaScript對象。 – 2012-02-21 10:25:08

+1

我100%肯定這就是他的意思。 – 2012-02-21 10:25:21

+0

是的,我也是,但應該澄清並解釋JSON不是JavaScript。 – 2012-02-21 10:26:00

6

您可以通過JSON.parse運行,同時採用json2.js提供舊版本瀏覽器的方法。

var js_object = JSON.parse(json_string); 

(這會給你一個JavaScript對象,因爲那裏有is no such thing as a JSON object)。

如果您已經在使用jQuery,那麼它有自己的抽象方法 - jQuery.parseJSON - 您可以使用它來代替json2.js。這是一個過大的庫,只是爲該功能加載。

相關問題