【问题标题】:How to fetch value in javascript variable from json如何从json中获取javascript变量中的值
【发布时间】:2016-05-01 14:39:06
【问题描述】:

var times = [{
  "Start": "2016-01-26\r\n",
  "End": "2016-01-26\r\n"
}, {
  "Start": "2016-01-21\r\n",
  "End": "2016-01-29\r\n"
}]

我试图在 jQuery 中运行一个循环来获取开始和结束日期,但我无法获取变量中的值。我对 JSON 非常陌生,因此我们将不胜感激。

【问题讨论】:

  • 首先你想将 JSON 解析为一个对象......然后它就像任何其他 javascript 对象一样 - 展示你尝试过的内容会很有帮助,这样人们就可以衡量你的水平熟练掌握javascript是
  • jQuery 没有什么特别之处,您可以使用for(var i=0;.....) 来做到这一点
  • @RayonDabre - 我个人建议[].forEach,但是,是的,不是jQuery问题(如果你真的必须使用jQuery saccharine,你可以使用$.each
  • @JaromandaX 先生,有什么理由这样做吗?
  • @RayonDabre - 没有理由(forEach vs for),只是一个意见 - 顺便说一句,在这种情况下,我不会使用 jQuery $.each ever只提到它是因为问题要求使用 jQuery 解决方案

标签: javascript jquery json


【解决方案1】:

您可以使用Array.forEach 循环数据并使用.push 插入新数组。

我还添加了删除 \r\n 的代码。参考以下post

var data = [{
  "Start": "2016-01-26\r\n",
  "End": "2016-01-26\r\n"
}, {
  "Start": "2016-01-21\r\n",
  "End": "2016-01-29\r\n"
}];

var startDate = [];
var endDate = [];
var trimRegex = /\r?\n|\r/g;
data.forEach(function(obj) {
  startDate.push(obj.Start.replace(trimRegex,''));
  endDate.push(obj.End.replace(trimRegex,''));
});

console.log(startDate, endDate);

【讨论】:

    【解决方案2】:

    你可以使用jquery each

    var times = [{
      "Start": "2016-01-26\r\n",
      "End": "2016-01-26\r\n"
    }, {
      "Start": "2016-01-21\r\n",
      "End": "2016-01-29\r\n"
    }];
    $.each(times, function(index, obj) {
      console.log("Start date: " + obj.Start);
      console.log("End date: " + obj.End);
    
    });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

    【讨论】:

      【解决方案3】:

      因此,为了获取 JSON 的值,我们首先要查看我们为 json 使用的数据结构,即它只是单个对象或数组。

      如果它是一个像你这样的数组 data 是一个数组,那么我们可以获取类似的数据

      var k=[{"Start":"2016-01-26\r\n","End":"2016-01-26\r\n"},{"Start":"2016-01-21\r\n","End":"2016-01-29\r\n"}];
      for(i=0;i<k.length;i++)
      {console.log(k[i].Start)}
      

      将运行一个循环直到数组长度并尝试获取密钥。 如果它只是一个对象,那么我们可以直接像

      var k={"Start":"2016-01-26\r\n","End":"2016-01-26\r\n"}
      console.log(k.Start)
      

      希望对你有帮助

      【讨论】:

        【解决方案4】:

        var obj = [{
          "Start": "2016-01-26\r\n",
          "End": "2016-01-26\r\n"
        }, {
          "Start": "2016-01-21\r\n",
          "End": "2016-01-29\r\n"
        }];
        
        for (var counter = 0; counter < obj.length; counter++) {
          console.log("Start date: " + obj[counter].Start);
          console.log("End date: " + obj[counter].End);
        }

        【讨论】:

        • 嗨,我正在尝试添加值 var start_date = obj[ counter ].Start; var end_date = obj[ counter ].End; '2016-01-26': { "status": "RESERVE", "reservationId": "24ba2024-f0dd-4c7d-a744-57396d56fd42" }, 而不是日期,但它没有获取值。
        猜你喜欢
        • 2016-02-26
        • 2018-06-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-05
        • 1970-01-01
        相关资源
        最近更新 更多