我有一个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>