【问题标题】:Stringify json object in array, that is equal to date在数组中字符串化 json 对象,即等于日期
【发布时间】:2017-11-27 09:52:37
【问题描述】:

我想告诉一个json对象,用今天的日期/时间将属于数组的对象字符串化。

我有一个获取 json 对象的 php 脚本,其中包含多个数组,如下所示:

data: Array(55)

    0: {date: "2017112700", p: Array(1)}
    1: {date: "2017112701", p: Array(1)}
    2: {date: "2017112702", p: Array(1)}

    and so forth...55 in all.

我能够验证我的日期变量 (date_test) 是否与 json 数组中的日期变量匹配。

var date_test;

var index = json.data.findIndex(function(item, i){
  return item.date === date_test
});

console.log(index);

假设console.log(index); 给了我一个“9”。

这告诉我date_testitem.date 匹配的位置。

现在这是我卡住的地方....我可以对 json 数组中的任何信息进行字符串化,但我想对与我的 date_test 匹配的对象进行字符串化。有人吗?

【问题讨论】:

  • 为什么不 JSON.parse 它并找到实际数据?
  • 你想要哪个日期匹配的完整对象吗?
  • 返回的数据看起来不像 JSON。

标签: javascript jquery arrays json object


【解决方案1】:

获取匹配您搜索的对象:

var obj = json.data[index]; //your previously found index

然后将其字符串化:

var json = JSON.stringify(obj);

【讨论】:

  • 如果您只需要对 p 数组进行字符串化,请使用它来抓取它:json.data[index].p
  • 就是这样!谢谢...简单的答案!我只是用了例如: var json_temp = JSON.stringify(json.data[index].p[0]["temperature"]);然后是 console.log(json_temp);
【解决方案2】:

您可以像这样使用Array#find() method

let date_test = "2017112701";

var searchObj = arr.find(function(item) {
  return item.date === date_test;
});

然后你可以把它串起来:

JSON.stringify(searchObj);

演示:

var arr = [{
    date: "2017112700",
    p: []
  },
  {
    date: "2017112701",
    p: []
  },
  {
    date: "2017112702",
    p: []
  }
];

let date_test = "2017112701";

var searchObj = arr.find(function(item) {
  return item.date === date_test;
});
console.log(JSON.stringify(searchObj));

【讨论】:

    【解决方案3】:

    你可以使用jQuery.grep()来过滤json数据,如下图

    $(document).ready(function() {
      var myObj = [{
          date: "2017112700",
          p: ['a']
        },
        {
          date: "2017112701",
          p: ['b']
        },
        {
          date: "2017112702",
          p: ['c']
        }
      ];
      var mydate = '2017112701';
      var output = $.grep(myObj, function(value, index) {
        return value.date == mydate;
      });
      console.log(JSON.stringify(output));
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

    【讨论】:

      【解决方案4】:

      var json_temp = JSON.stringify(json.data[index].p[0]["温度"]);然后是 console.log(json_temp);

      【讨论】:

        猜你喜欢
        • 2011-03-07
        • 2012-09-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-18
        • 1970-01-01
        • 1970-01-01
        • 2011-02-17
        相关资源
        最近更新 更多