在jQuery中显示JSON中的数据

时间:2018-09-21 11:18:07

标签: jquery json ajax

我正在尝试输出每个公司的公司名称和编号。然后,我将能够在列表中的div中显示。 我在jquery,Ajax和Json方面并不是很出色,所以对自己的工作感到有些困惑。

这是我到目前为止编写的代码

function companywith(elem){

            var companyWithidList = '#companyWith#';

            var ajaxResponse = $.ajax({
                type: 'POST',
                url: '/mysite/com/mysite/agcharts.cfc',
                data: {method: 'getChartInfo', returnformat: 'json', company_idlist: companyWithidList},
                dataType: "json",
                success: function(response) {
                    console.log(response);
                    var json_obj = JSON.parse(JSON.stringify(response));


                }

            })

        }

我取回了我希望取回的数据,但我想显示此数据。我知道我需要使用嵌套循环,因为我有两个数组。

这是在控制台中显示的数据的示例,但我只是不知道如何访问它,因此我可以在网页中显示。

控制台显示------ >>>>>>     {栏:Array(2),DATA:Array(155)}     列     :     (2)[“ COMPANY_NO”,“ COMPANY_NAME”]     数据     :     数组(155)     [0…99]     0     :     (2)[69,“公司1”]     1个     :     (2)[41,“公司2”]     2     :     (2)[130,“公司3”]

我添加了一个each循环,但这仅显示第一个数组,这是错误的,但是我不确定如何在第二个数组中添加。

    $.each(json_obj, function(i, v) {
    console.log("key is " + i);
    console.log("value is " + v);
    // parse the option value from json into an object
    var obj = JSON.parse(v);

  })
console display ---->>>>>>
key is COLUMNS
value is COMPANY_NO,COMPANY_NAME

如果您需要更多信息,请告诉我。 预先感谢

2 个答案:

答案 0 :(得分:0)

如果要在表中显示数据,可以使用许多插件。但是最好的之一是数据表插件https://datatables.net/

或者如果您的json采用这种格式而不是对象数组,则可以用这种方式添加

[{ "COMPANY_NAME":"abc", "COMPANY_NO":"1224" }, { "COMPANY_NAME":"pac", "COMPANY_NO":"9224" }]

      <table id="output">

      </table> 

         success: function(data){ 
                        $.each(json_obj, function( index, value ) {
                           var row = $("<tr><td>" + value.COMPANY_NAME + "</td><td>" + value.COMPANY_NO + "</td></tr>");
                           $("#output").append(row);
                        });

答案 1 :(得分:0)

我的理解是您的答复如下:

{
  COLUMNS : ["COMPANY_NO", "COMPANY_NAME"],
  DATA : [[69, "company 1"], [41, "company 2"] .....
}

您可以使用响应的data部分,而不是使用整个响应,然后对其进行迭代并根据需要使用它 因此,您的成功回调函数将类似于

 success: function(response) {
                console.log(response);
                var json_obj = JSON.parse(JSON.stringify(response));
                $.each(json_obj["DATA"], function(i, v) { //you loop over the DATA part only
                  console.log("key is " + i);   //this would be index, say 0
                  console.log("value is " + v); //this would be [69, "company 1"]
                  // use the values
                  console.log("id: "+ v[0]);  // 69
                  console.log("name: "+ v[1]);// "company 1"
                });
            }

但是请注意,各个条目(例如[69, "company 1"])是数组。如果它们是json对象,则可以更好地处理它们(以便您可以按每个属性名称而不是位置编号进行访问),在这种情况下,您的响应将包含一个对象数组,而不是它现在拥有的数组数组。 / p>

编辑:您也可以不使用jQuery进行迭代,如下所示:

response["DATA"].forEach(function(element) {
  console.log(element);    //Array [ 69, "company 1" ]
  console.log(element[0]+","+element[1]); //69,company 1
});