Javascript-解析JSON寻找对象字符串

时间:2019-02-19 07:08:22

标签: javascript json

我正在创建一个网页,该网页显示从JSON解析的数据。我正在使用2个JSON文件。我可以毫无问题地解析一个,而我正在努力地解决。
我希望能够解析JSON以查找特定的对象字符串,并返回同一字典中的所有其他对象字符串。

JSON的布局为:

{
  "example":[
    {
      "Area":"Inside",
      "Player":"1",
      "Status":1,
      "Start_Time":"2016-12-21",
      "End_Time":"2016-12-22",
    },
    {
      "Area":"Outside",
      "Player":"1",
      "Status":1,
      "Start_Time":"2016-12-24",
      "End_Time":"2016-12-25",
    },
    {
      "Area":"Outside",
      "Player":"2",
      "Status":1,
      "Start_Time":"2016-12-26",
      "End_Time":"2016-12-28",
    }
  ]
}

我想说

if (player=="1") {//show ALL areas and start and end time}
//output should be something like: Area: Inside, Player: 1, Status: 1, Start_Time: 'Time', End_Time: 'Time', Area: Outside, Player: 1, Status: 1, Start_Time: 'Time', End_Time: 'Time'

我正在尝试解析javascript中的JSON,这就是我解析其他JSON的方式:

var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
  if (this.readyState == 4 && this.status == 200) {
    var myObj = JSON.parse(this.responseText);
    var dateTime = myObj.Date;
  }
};
xmlhttp.open("GET", "http://web/server/file.json", true);
xmlhttp.send();

感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

您可能想尝试filter

myObj.example.filter(obj => obj.Player == "1")

// 0: {Area: "Inside", Player: "1", Status: 1, Start_Time: "2016-12-21", End_Time: "2016-12-22"}
// 1: {Area: "Outside", Player: "1", Status: 1, Start_Time: "2016-12-24", End_Time: "2016-12-25"}


答案 1 :(得分:0)

使用forEach循环

var a={
  "example":[
    {
      "Area":"Inside",
      "Player":"1",
      "Status":1,
      "Start_Time":"2016-12-21",
      "End_Time":"2016-12-22",
    },
    {
      "Area":"Outside",
      "Player":"1",
      "Status":1,
      "Start_Time":"2016-12-24",
      "End_Time":"2016-12-25",
    },
    {
      "Area":"Outside",
      "Player":"2",
      "Status":1,
      "Start_Time":"2016-12-26",
      "End_Time":"2016-12-28",
    }
  ]
};
a.example.forEach(e=>e.Player=="1" && e.Area=="Inside"?console.log(e):false)

答案 2 :(得分:0)

这里确实有两个问题:提取JSON,然后解析它以查找您感兴趣的数据。以下代码片段处理了fetch()的第一个任务({{1的现代后继}}),后面的任务则使用XMLHttpRequest

请注意,如果您不使用现代javascript环境,则此解决方案将失败。还要注意,可以使用新的async / await改善此情况。为了简单起见,我将它们排除在外。

Array.prototype.filter