我正在尝试使用 jquery $.getJSON 从文件中列出我的 JSON 数组
这是我现在所拥有的:
(document).ready(function() {
var theAPI = "test.js";
$("button").click(function() {
$.getJSON(theAPI, function(result) {
$.each(result, function(i, field) {
$("div").append(i + " - - - " + field + "<br/>");
});
});
});
});
我的输出是:
种类 - - - 我的种类
nextPageToken - - - CAUQAA
pageInfo - - - [对象对象]
如何附加此[对象对象]? 这是 test.js:
{
"kind": "mykind",
"nextPageToken": "CAUQAA",
"pageInfo": {
"totalResults": 1691,
"resultsPerPage": 5
}
}
更新 JSON.stringify() 不是答案,我想列出每个 json 对象。
最佳答案
我相信对此的通用解决方案会很棒,因为将来的某个时候您的 JSON 结构可能会发生变化并变得更加复杂。
因此,我尝试提出一个通用的解决方案 here
var result = {
"key-1": "value-1",
"key-2": "value-2",
"key-3": {
"key-31": "value-31",
"key-32": "value-32",
"key-33": ["value-331", "value-332", "value-333"],
"key-34": {
"key-341": 341,
"key-342": 342,
"key-343": [3431],
"key-344": true,
"key-345": false,
"key-346": {
"key-3461": [3461, "value-3462", true, false]
}
}
},
"key-4": "value-4",
"key-5": ["value-51", "value-52"],
"key-6": {
"key-61": "value-61",
"key-62": ["value-621", "value-622"],
"key-63": {
"key-631": "value-631",
"key-632": true,
"key-633": false
}
},
"key-7": function() {
console.log("I am a function...");
}
};
var tabCount = 0,
typeMap = {
"STRING": "[object String]",
"NUMBER": "[object Number]",
"BOOLEAN": "[object Boolean]",
"ARRAY": "[object Array]",
"OBJECT": "[object Object]",
"FUNCTION": "[object Function]"
},
getTypeOfObject = function(o) {
return Object.prototype.toString.call(o);
},
getTabSpacing = function(numberOfTabs) {
var tab = " ",
result = "";
for(var index = 0; index < numberOfTabs; index++) {
result += tab;
}
return result;
},
iterator = function(obj, tab) {
$.each(obj, function(key, value) {
if(getTypeOfObject(value) === typeMap.OBJECT) {
$("div").append(getTabSpacing(tab) + key + ":<br/>");
iterator(value, ++tabCount);
--tabCount;
}
else {
$("div").append(getTabSpacing(tab) + key + ": " + value + "<br/>");
}
});
};
iterator(result, tabCount);
我不确定这是否是您正在寻找的内容。
关于javascript - 列出列出的 json 数组内的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30891778/