我真的很讨厌为我做这件事'问题,但我完全失去了。我想我不会得到JSON。所以这是我的JSON的一个例子:
"max":"10",
"min":"0",
"attributes":[
{
"attributeName":"Fortitude",
"attributeColor":"#B7B7B7"
},
{
"attributeName":"Vigor",
"attributeColor":"#D5A6BD"
},
{
"attributeName":"Celerity",
"attributeColor":"#B4A7D6"
}
]
它是外部的,我想抓住它,然后设置一个js变量作为属性对象的数组。所以如果在JS中我设置:
var attributes = [];
attributes = whatEverNeedsToGoHere;
然后我循环遍历那个我可以做的事情:
console.log(attributes[0].attributeName);
获得"坚韧"。我理解如何使用$ .getJSON()获取jQuery和jQuery;但我不知道将属性数组转换为对象数组需要做些什么。
更新:我现在如何调用JSON。
var attributesData = $.getJSON("jsonDB/attributes.js", function(data){
var thisAttribute = {"attributeName":String(data[i].attributeName),"attributeColor":String(data[i].attributeColor)};
attributes.push(thisAttribute);
console.log(attributes.attributeName);
});
答案 0 :(得分:1)
这可能就是你所追求的:
var attributes;
$.getJSON("jsonDB/attributes.js", function(data){
attributes = data.attributes;
console.log(attributes);
});
您可以对其进行测试here。为此目的,我已经找到了getJSON
:
function getJSON(url, callbackfn){
var data = {
"max":"10",
"min":"0",
"attributes":[
{
"attributeName":"Fortitude",
"attributeColor":"#B7B7B7"
},
{
"attributeName":"Vigor",
"attributeColor":"#D5A6BD"
},
{
"attributeName":"Celerity",
"attributeColor":"#B4A7D6"
}
]
}
callbackfn(data);
}
var attributes;
getJSON("jsonDB/attributes.js", function(data){
attributes = data.attributes;
console.log(attributes);
});
答案 1 :(得分:1)
使用开源项目jinqJs,您可以在一行中执行此操作
var data = {"max":"10",
"min":"0",
"attributes":[
{
"attributeName":"Fortitude",
"attributeColor":"#B7B7B7"
},
{
"attributeName":"Vigor",
"attributeColor":"#D5A6BD"
},
{
"attributeName":"Celerity",
"attributeColor":"#B4A7D6"
}
]
}
var result = jinqJs().from(data).select('attributes');
document.body.innerHTML += '<pre>' + JSON.stringify(result, null, 4) + '</pre>';
<script src="https://rawgit.com/fordth/jinqJs/master/jinqjs.js"></script>
var attributes = jinqJs().from('http://..some json url').select('attributes');
这将返回以下内容的集合:
[
{
"attributeName":"Fortitude",
"attributeColor":"#B7B7B7"
},
{
"attributeName":"Vigor",
"attributeColor":"#D5A6BD"
},
{
"attributeName":"Celerity",
"attributeColor":"#B4A7D6"
}
]
答案 2 :(得分:0)
首先,您的JSon数据无效。
将此数据设置为Json的正确格式如下:
{
"max": "10",
"min": "0",
"attributes": [
{
"attributeName": "Fortitude",
"attributeColor": "#B7B7B7"
},
{
"attributeName": "Vigor",
"attributeColor": "#D5A6BD"
},
{
"attributeName": "Celerity",
"attributeColor": "#B4A7D6"
}
]
}
而且,在这种情况下,我强烈建议使用Jspath。 Jspath允许您在JSon数据上执行XPath表达式。