2013-03-22 100 views
1

我有一個休息的服務,爲這我送JSON數據爲["1","2","3"](字符串列表),這是在Firefox工作正常休息的客戶端插件,但同時在應用結構發送數據是{"0":"1","1":"2","2":"3"}格式,我不能來傳遞數據,如何轉換{"0":"1","1":"2","2":"3"}["1","2","3"],這樣我可以通過發送應用程序的數據,任何幫助將不勝感激。如何發送數據在JSON結構

+0

看到:HTTP://dojotoolkit.org/reference-guide/1.8/dojo/json.html – diEcho 2013-03-22 04:55:53

回答

0

如果JSON的格式是{ "index" : "value" },是我所看到的{"0":"1","1":"2","2":"3"},那麼我們就可以利用這些信息優勢,你可以這樣做:

var myObj = {"0":"1","1":"2","2":"3"}; 
var convertToList = function(object) { 
    var i = 0; 
    var list = []; 
    while(object.hasOwnProperty(i)) { // check if value exists for index i 
     list.push(object[i]);   // add value into list 
     i++;       // increment index 
    } 
    return list; 
}; 

var result = convertToList(myObj); // result: ["1", "2", "3"] 

見琴:http://jsfiddle.net/amyamy86/NzudC/

在列表中使用假冒指數「迭代」。請記住,如果索引中斷,這將不起作用,不能這樣:{"0":"1","2":"3"}

+0

不工作仍然 – user1490244 2013-03-22 09:19:37

+0

@ user1490244您可以發佈您的代碼和/或提供更多信息,爲什麼它不工作還在?也許任何錯誤被拋出? – sweetamylase 2013-03-22 16:49:48

0

您需要將json解析回javascript對象。有在道場的後面的迭代分析工具,其他的貢獻者之一已經指出的那樣,但是大多數瀏覽器都支持JSON.parse(),這是在ECMA-262第5版(即JS是基於規範)定義。它的用法是:

var str = your_incoming_json_string, 
// here is the line ... 
obj = JSON.parse(string); 

// DEBUG: pump it out to console to see what it looks like 
a.forEach(function(entry) { 
    console.log(entry); 
}); 

對於不支持JSON.parse()您可以使用json2.js實現它的瀏覽器,但因爲你實際使用的是道場,然後dojo.fromJson()是你的路要走。 Dojo負責爲您提供瀏覽器獨立性。

var str = your_incoming_json_string, 
// here is the line ... 
obj = dojo.fromJson(str); 

// DEBUG: pump it out to console to see what it looks like 
a.forEach(function(entry) { 
    console.log(entry); 
}); 

如果您使用道場的AMD版本,那麼你需要回到Dojo文檔,並期待在dojo.fromJson頁道場/ _base/JSON的例子。