javascript - 列出列出的 json 数组内的对象

标签 javascript jquery arrays ajax json

我正在尝试使用 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 = "&nbsp;&nbsp;&nbsp;&nbsp;",
            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/

相关文章:

java - 在 Java 中序列化 Longs 数组的最紧凑方法

javascript - 分页和过滤如何很好地工作?

javascript - 无法保存输入复选框的选中状态

javascript - 如何将数字添加到 jQuery 对象本身

javascript - 获取每个动态创建的输入元素的动态值并将它们分配给单独的变量

java - 动态设置微调器的值

javascript - jQuery "find"方法替代

Javascript 到 Perl 数组/哈希转换

javascript - 在具有元刷新(时间 = 0 秒)的页面上,在 <Head>?

javascript - TypeScript 无法在扩展语法函数调用中推断数组类型