我有在該特定格式的JavaScript數組的特定JSON格式轉換字符串的數組:在使用jQuery或Javascript
var arr =
["header1", //section header
false, //subsection, no
"1240","1243", //assets
true,"1", //subsection, yes = 1
"1344","1136", //assets
true,"1", //subsection, yes = 1
"1347", //assets
"header2", //section header
false, //subsection, no
"1130"]; //assets
上述陣列具有序列:
1)的陣列與「標題」是部分值。
2)數組中的「false」表示本節沒有任何小節。所以在JSON中,子值爲null。
3)後面跟着false是這些部分的所有資產值。
4)「true」表示本節有一個小節。下一個值的子部分值後跟「真」。在我的例子中,它是1.其次是該分段的所有資產值。
5)當遇到字符串「header」的下一個數組值時。它是下一節的開始。
我必須把它轉換成格式:
{
"templateForm":
[{
"sectionId":"header1",
"values":[
{
"sub":null,
"assets":[1240,1243]
},
{
"sub":1,
"assets":[1344,1136]
},
{
"sub":1,
"assets":[1347]
}
]
},
{
"sectionId":"header2",
"values":[
{
"sub":null,
"assets":[1130]
}
]
}]
}
我已經嘗試了很多,但沒能做到這一點。我試圖創建json格式作爲字符串,但在解析它爲javascript對象時出錯。請幫我解決這個問題。
我的不完整的代碼如下:
function makeJSON(formItems) {
var subString1 = "header";
var strStart = '{"templateForm":[';
var strSection = "";
for (var i = 0; i < formItems.length; i++) {
var isHeader = item.indexOf(subString1) !== -1;
if(isHeader){
strSection += '{"sectionId":'+item[i];
while(item != true || item != false){
}
}
var item = formItems[i] + "";
console.log(item);
if (item == "true") {
var subSectionId = item[++i];
} else if (item == "false") {
var subSectionId = null;
}
}
var strEnd = "]}";
var strFinal = strStart + strSection + strEnd;
console.log(strFinal);
var obj = JSON.parse(strFinal);
console.log(obj);
}
你嘗試過什麼碼?你卡在哪裏?你得到什麼錯誤? – Cruiser
數據來自哪裏?它的格式非常糟糕IMO。 –
@ NathanP.Can你建議我一個很好的格式 –