2016-11-08 55 views
0

編輯:讓我們看看我有JSON屬性如何動態地基於JSON準備屬性列表

輸入是:

[{id:100,value:"eclispe",json_key:"ide"},{id:101,value:"java",json_key:"prog_lang"}] 

輸出excpected是:

{"ide":[{"id":100,"name":"eclipse"}],"prog_lang":[{"id":101,"name":"java"}]} 

上面顯示的這個JSON可以基於屬性動態變化。

它可以增加列表

我怎麼會發現列表中有這些要求很多名單。

我們將如何根據需要重新構建JSON。

+0

我自己得到的答案 迭代列表,並推動JSON鍵地圖 地圖<字符串,列表> OBJ =新HashMap >(); –

+0

你可以試着解釋一下你需要什麼嗎?如果我明白,基於標籤,您想要在JAVA中將表示JSON數組的「String」轉換爲「List」。您使用什麼庫來閱讀JSON?常見的有Jackson和Gson。我認爲兩者都有建立者來生成'Bean'。 – AxelH

回答

0

試試這個它會工作:

var data = [ 
 
      {id:100,value:"eclispe",json_key:"ide"}, 
 
      {id:101,value:"java",json_key:"prog_lang"} 
 
      ]; 
 

 
var newObj = {}; 
 
for (var i in data) { 
 
    var jsonKeys = data[i].json_key; 
 
    newObj[jsonKeys] = []; 
 
    var objKeys = Object.keys(newObj); 
 
    if(objKeys[i] == data[i].json_key) { 
 
    data[i].name = data[i].value; 
 
    delete data[i].json_key; 
 
    delete data[i].value; 
 
    newObj[objKeys[i]].push(data[i]); 
 
    } 
 
} 
 

 
document.getElementById("showJson").innerHTML = JSON.stringify(newObj);
<div id="showJson"></div>