Javascript 在列出的json数组中列出对象

Javascript 在列出的json数组中列出对象,javascript,jquery,arrays,ajax,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) { $

我试图使用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/>");
            });
        });
    });
});
更新
stringify()不是一个答案,我想列出每个JSON对象。

您可以像这样对其进行字符串化(以下是:

$(文档).ready(函数(){
var theAPI=“test.js”;
$(“按钮”)。单击(函数(){
$.getJSON(API,函数(结果){
$.each(结果、函数(i、字段){
$(“div”).append(i+“-”+JSON.stringify(field)+“
”); }); }); }); });
用户JSON.stringify()

$(“按钮”)。单击(函数(){
$.getJSON(API,函数(结果){
$.each(结果、函数(i、字段){
$(“div”).append(i+“-”+JSON.stringify(field)+“
”); }); }); });
如果只能进行一级嵌套

$("button").click(function(){
  $.getJSON(theAPI, function(result){
    $.each(result, function(key, value){
      if (key=="pageInfo") { // or typeof value=="object"
        $.each(value, function(pKey, pValue){  
          $("div").append(pKey+ " - - - " +pValue + "<br/>");
        });
      }
      else {
          $("div").append(key+ " - - - " +value + "<br/>");
      }
    });

  });
});

我相信一个通用的解决方案会很好,因为在将来的某个时候,您的JSON结构可能会发生变化,变得更加复杂

因此,我试图提出一个通用的解决方案

var结果={
“键-1”:“值-1”,
“键2”:“值2”,
“关键-3”:{
“key-31”:“value-31”,
“键-32”:“值-32”,
“键-33”:[“value-331”、“value-332”、“value-333”],
“密钥-34”:{
“密钥341”:341,
“密钥342”:342,
“密钥343”:[3431],
“密钥344”:正确,
“密钥345”:错误,
“密钥346”:{
“key-3461”:[3461,“value-3462”,对,错]
}
}
},
“键4”:“值4”,
“键-5”:[“value-51”、“value-52”],
“键-6”:{
“键-61”:“值-61”,
“键-62”:[“value-621”、“value-622”],
“键-63”:{
“键-631”:“值-631”,
“key-632”:正确,
“键-633”:错误
}
},
“键-7”:函数(){
log(“我是一个函数…”);
}
};
var tabCount=0,
类型映射={
“字符串”:“[对象字符串]”,
“编号”:“[对象编号]”,
“布尔”:“[对象布尔]”,
“数组”:“[对象数组]”,
“对象”:“[对象]”,
“函数”:“[对象函数]”
},
getTypeOfObject=函数(o){
返回Object.prototype.toString.call(o);
},
getTabSpacing=函数(numberOfTabs){
var tab=“”,
结果=”;
对于(var索引=0;索引);
迭代器(值++tabCount);
--烟草计数;
}
否则{
$(“div”).append(gettabspace(tab)+key+”:“+value+”
); } }); }; 迭代器(结果,tabCount);

我不确定这是否是您想要的。

是的,它起作用了,但我现在如何访问它的一个属性?我只想附加总结果。我无法理解您的问题。我不想在test.js中的数据周围添加这些“”。是否有类似于append(i,field.pageinfo)的内容;这是可以理解的,但是你有很多打字错误:/你的意思是什么?我刚更新了我的代码你太棒了!谢谢男人:)我完全忘记了循环中的循环:)如果我有多个对象呢?有没有一种方法可以像这样列出所有对象?很优雅,但在我看来,鉴于原始问题中的JSON,这种方法比上面提到的方法更重要。
$(document).ready(function(){
var theAPI = "test.js";
$("button").click(function(){
    $.getJSON(theAPI, function(result){
        $.each(result, function(i, field){
            $("div").append(i+ " - - - " +JSON.stringify(field)+ "<br/>");
        });
    });
});
});
$("button").click(function(){
    $.getJSON(theAPI, function(result){
        $.each(result, function(i, field){
            $("div").append(i+ " - - - " +JSON.stringify(field) + "<br/>");
        });
    });
});
$("button").click(function(){
  $.getJSON(theAPI, function(result){
    $.each(result, function(key, value){
      if (key=="pageInfo") { // or typeof value=="object"
        $.each(value, function(pKey, pValue){  
          $("div").append(pKey+ " - - - " +pValue + "<br/>");
        });
      }
      else {
          $("div").append(key+ " - - - " +value + "<br/>");
      }
    });

  });
});
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);