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

时间:2015-06-17 12:34:50

标签: javascript jquery arrays ajax json

我正在尝试使用jquery $ .getJSON

从文件中列出我的JSON数组

以下是我现在所拥有的:

data
->english
    --> english.txt
-> file1.txt

我的输出是:

善良 - - - mykind

nextPageToken - - - CAUQAA

pageInfo - - - [object Object]

如何附加此[object Object]? 这是test.js:

(document).ready(function() {
    var theAPI = "test.js";

    $("button").click(function() {
        $.getJSON(theAPI, function(result) {
            $.each(result, function(i, field) {
                $("div").append(i + " - - - " + field + "<br/>");
            });
        });
    });
});

更新 JSON.stringify()不是答案,我想列出每个json对象。

4 个答案:

答案 0 :(得分:1)

如果只有一个级别的嵌套,你可以

$("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 = {

  "kind": "mykind",

  "lineInfo": {
    "totalLineResults": 691,
    "resultsPerLine": 9
  },

  "nextPageToken": "CAUQAA",

  "pageInfo": {
    "totalResults": 1691,
    "resultsPerPage": 5
  }
}

$.each(result, function(key, value) {
  if (typeof value=="object") {
    $("div").append(key + "<ul>");
    $.each(value, function(pKey, pValue) {
      $("div").append("<li>"+pKey + " - - - " + pValue + "</li>");
    });
    $("div").append("</ul>");
  } else {
    $("div").append(key + " - - - " + value + "<br/>");
  }
});
ul { display:inline }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div></div>

答案 1 :(得分:1)

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

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

method

我不确定这是不是你想要的。

答案 2 :(得分:0)

你可以像这样对它进行字符串化(这里是jsfiddle):

$(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/>");
        });
    });
});
});

答案 3 :(得分:0)

用户JSON.stringify()

$("button").click(function(){
    $.getJSON(theAPI, function(result){
        $.each(result, function(i, field){
            $("div").append(i+ " - - - " +JSON.stringify(field) + "<br/>");
        });
    });
});