簡體   English   中英

如何將 json 轉換為 javascript 中的數組以獲取 li 列表

[英]how to convert json to array in javascript for an li list

我有一個 JSON 字符串被拉出並返回以下內容。

var result = {
  "0": { NAME: "NONE" },
  "1": { NAME: "REGISTRATION" },
  "2": { NAME: "PAPER" },
  "3": { NAME: "BLACK" },
  "4": { NAME: "C=100M=0Y=0K=0" },
  "5": { NAME: "C=0M=100Y=0K=0" },
  "6": { NAME: "C=0M=0Y=100K=0" },
  "7": { NAME: "C=15M=100Y=100K=0" },
  "8": { NAME: "C=75M=5Y=100K=0" },
  "9": { NAME: "C=100M=90Y=10K=0" }
};

這些是來自 InDesign 文檔的顏色。 我正在嘗試在 javascript 中轉換為字符串,但我嘗試過的一切都不起作用。

我得到的最接近的是以下

 var result = { "0": { NAME: "NONE" }, "1": { NAME: "REGISTRATION" }, "2": { NAME: "PAPER" }, "3": { NAME: "BLACK" }, "4": { NAME: "C=100M=0Y=0K=0" }, "5": { NAME: "C=0M=100Y=0K=0" }, "6": { NAME: "C=0M=0Y=100K=0" }, "7": { NAME: "C=15M=100Y=100K=0" }, "8": { NAME: "C=75M=5Y=100K=0" }, "9": { NAME: "C=100M=90Y=10K=0" } }; var listEl = document.getElementById('swatches'); makeList(result,listEl); function makeList(jsonObject, listElement) { //iterate through the array or object for (var i in jsonObject) { //insert the next child into the list as a <li> var newLI = document.createElement("li"); newLI.innerHTML += jsonObject[i]; listElement.appendChild(newLI); } }
 <div class="dropdown-container"> <!-- <ul class="swatches" id="swatches" onchange="swatchIndex()">--> <ul class="swatches" id="swatches" onchange="swatchIndex()"> <li class="cell" id="cell"> None <div class="colorBox"></div> <!--END COLOR BOX--> </li> <!--END LI--> </ul> <!--END SWATCHES--> </div>

有什么想法嗎?

添加額外的 [] 到您的字符串並使用以下代碼:

var myObject = eval('(' + myJSONtext + ')');

用這個測試這個。

var s =" [{'id':1,'name':'Test1'},{'id':2,'name':'Test2'}]"; var myObject = eval('(' + s + ')'); for (i in myObject) { alert(myObject[i]["name"]); }

我只能想想:

 var result = {"0":{"NAME":"NONE"}, "1":{"NAME":"REGISTRATION"}, "2":{"NAME":"PAPER"}, "3":{"NAME":"BLACK"}, "4":{"NAME":"C=100M=0Y=0K=0"}, "5":{"NAME":"C=0M=100Y=0K=0"}, "6":{"NAME":"C=0M=0Y=100K=0"}, "7":{"NAME":"C=15M=100Y=100K=0"}, "8":{"NAME":"C=75M=5Y=100K=0"}, "9":{"NAME":"C=100M=90Y=10K=0"}}; function makeList(jsonObject, listElement) { //iterate through the array or object for(var i in jsonObject) { //insert the next child into the list as a <li> var newLI = document.createElement('li'); newLI.innerHTML += jsonObject[i].NAME; listElement.appendChild(newLI); } } makeList(result, document.querySelector('ul'));
 <ul></ul>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM