我正在创建一个网页,该网页显示从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();
感谢您的帮助。
答案 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