我試圖編寫一個可以將我的自定義數據(數據Sencha Touch商店使用)轉換爲JSON格式的實用程序函數,而且我幾乎完成了工作,但它無法使用來自twitter API的複雜數據,罰款簡單的數據類型。將JavaScript自定義數據數組添加到JSON
自定義數據
var items = [];
for (var i = 0; i < 10; i++) {
var item = {};
var data = {};
data.prop1 = "123456789";
data.prop2 = "Some Name";
data.prop3 = "Some Date and Time";
item.data = data;
items.push(item);
}
現在上面的數據可以在一個循環中被訪問,並且可以被轉換爲與JSON下面的函數。
function toJSON(items) {
var jsonString = "[";
for (var i = 0; i < items.length; i++) {
var item = items[i];
jsonString += "{";
for (var propertyName in item.data) {
jsonString += '"' + propertyName + '":' + '"' + item.data[propertyName] + '",';
}
if (jsonString.substr(jsonString.length - 1, 1) === ",") {
jsonString = jsonString.substr(0, jsonString.length - 1);
}
jsonString += "},";
}
if (jsonString.substr(jsonString.length - 1, 1) === ",") {
jsonString = jsonString.substr(0, jsonString.length - 1);
}
jsonString += "]";
return jsonString;
}
問題是如果我正在做的編碼的事情是正確的?
你可以看到這些小提琴獲得實時體驗http://jsfiddle.net/WUMTF/和http://senchafiddle.com/#gxtZ9
你爲什麼不使用[JSON.js](https://github.com/douglascrockford/JSON-js)? – 2011-12-28 14:43:59
您是否故意將數據屬性從輸出中刪除?您的輸出與「JSON.stringify」(內置於現代瀏覽器中)的輸出相同,除了每個項目中缺少「data」屬性。如果你故意拋出它,我會爭辯說,按摩數據更容易,然後使用'JSON.stringify'或許多JSON JS庫中的一個。 – 2011-12-28 14:52:34
我沒有對數據的控制權,而且它始終只有深層次的意義。 – Neutralizer 2011-12-28 15:01:00