无法识别的Json对象

时间:2014-12-05 18:41:12

标签: javascript ajax json

我正在创建一个简单的应用程序,用户点击按钮并从数据库返回JSON对象。对象的结构如下所示。但是,无法识别对象并且执行失败。任何想法为什么会发生?

PHP的响应数组传递给js

array(2) (
  [success] => (bool) true
  [cnt] => array(2) (
    [2014-11-28] => array(2) (
      [visits] => (string) 1115
      [searches] => null
    )
    [2014-11-29] => array(2) (
      [visits] => (string) 493
      [searches] => 0
    )

    )
)

JSON对象

{
   "success":true,
   "cnt":{
      "2014-11-28":{
         "visits":"1115",
         "searches":null
      },
      "2014-11-29":{
         "visits":"493",
         "searches":0
      }
   }
}

正在解析对象的函数

 $.post(JOBK.ajaxurl, data, function (resp) {
            if (resp.success) {

                // Append rows    
                $.each(resp.cnt, function (dateCol) {
                    $.each(dateCol, function (visitsCol, searchesCol) {
                        // Insert a row in the table at row index 0
                        var newRow = tableRef.insertRow(tableRef.rows.length);

                    });
                });
            }

        }, 'json');
    });

1 个答案:

答案 0 :(得分:0)

首先,您需要返回有效的json字符串

{"success": true, "cnt": {"2014-11-28": {"visits": "1115", "searches": null}, "2014-11-29": {"visits": "493", "searches": 0}}}

另外我认为你不需要第二个循环,只需一个=>

// Append rows    
$.each(resp.cnt, function (dateCol, date) {
   var visits = dateCol.visits;
   var searches = dateCol.visits;
   //... do anything with it here
});