【问题标题】:How to access json key value from ajax success?如何从ajax成功访问json键值?
【发布时间】:2020-03-02 11:46:35
【问题描述】:

我想访问我从 ajax 响应中获得的数据的日志。我想将它创建为一个数组,以便我可以访问所有日志。但是现在每当我解析数据时,它都会将其作为单个对象值。

数据中只有一个_id=1。我想访问日志。

[
 {
   "_id": "1",
   "qos": "Access",
   "date": "2020-02-26",
   "logs": [
     {
       "qos": "Access",
       "date": "2020-02-26",
       "hour": 23,
       "cellName": "A11" 
     },
     {
       "qos": "Access",
       "date": "2020-02-26",
       "hour": 21,
       "cellName": "A12" 
     }
     {
        similar for entries
     },{}
}
] 

$.ajax({
       type: 'POST',
       async: 'false',
       url: '/data_from_datastore',
       contentType: 'application/json',
       data: JSON.stringify(sendDate1),
       success: function (data) {
           debugger;

               data = JSON.parse(data); // Here I want to create an array of all the log values

我想读取数据为:

 [
     {
       "qos": "Access",
       "date": "2020-02-26",
       "hour": 23,
       "cellName": "A11" 
     },
     {
       "qos": "Access",
       "date": "2020-02-26",
       "hour": 21,
       "cellName": "A12" 
     }
     {
        similar for entries
     }
}
] 

有没有办法只解析日志部分?

【问题讨论】:

    标签: javascript arrays json ajax dictionary


    【解决方案1】:

    我认为你不能只解析数据。但是你可以使用array.reduce,比如

    const logs = data.reduce((result, item) => { return [...result, item.logs] }, []);
    

    或者有些不是ECMA2015的版本,比如

    var logs = [];
    data.forEach(function(item){ logs.push(item.logs); });
    

    或者如果您只需要数据数组的第一项 -

    var logs = JSON.parse(data)[0].logs;
    

    【讨论】:

      【解决方案2】:

      试试

      result = JSON.parse(data)[0].logs;

      【讨论】:

        猜你喜欢
        • 2019-07-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多