Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript读取JSON文件_Javascript_Jquery_Html - Fatal编程技术网

使用Javascript读取JSON文件

使用Javascript读取JSON文件,javascript,jquery,html,Javascript,Jquery,Html,我有一个在线JSON文件,如下所示: { "meta": { "status": 200 }, "response": { "item": { "isLive": false, "eventStartTime": "2020-03-26T00:00:00Z" } } } 我需要一个JavaScript函数来解析这些数据以获得“isLive”。此JSON文件是联机的,只

我有一个在线JSON文件,如下所示:

{
    "meta": {
        "status": 200
    },
    "response": {
        "item": {
            "isLive": false,
            "eventStartTime": "2020-03-26T00:00:00Z"
        }
    }
}
我需要一个JavaScript函数来解析这些数据以获得“isLive”。此JSON文件是联机的,只能通过直接url访问。

使用jQuery:

让我活着;
$.getJSON(“ajax/test.json”,函数(数据){
isLive=data.response.item.isLive;
});
使用
fetch()


您可以使用Ajax读取此文件

$.getJSON(“ajax/test.json”,函数(数据){
//数据是JSON文件内容
JsonDataFile=JSON.parse(数据)
});

我建议不要使用jQuery,因为API是可用的

let isLive=false;
fetch('ajax/test.json')
.then(response=>response.json())
。然后(json=>{
isLive=json.response.item.isLive
});

实例 下面是一个使用示例JSON的实时示例

让isTaskCompleted=false;
const showStatus=()=>{
设el=document.querySelector(“#completed”);
el.textContent=isTaskCompleted?“是”:“否”;
el.setAttribute('data-completed',isTaskCompleted);
};
//将id从'4'更改为'1',以获得'false'的结果。
//见:https://jsonplaceholder.typicode.com/todos
取('https://jsonplaceholder.typicode.com/todos/4')
.then(response=>response.json())
。然后(json=>{
isTaskCompleted=json.completed;
showStatus();
});
标签{
字体大小:粗体;
}
.状态[数据已完成=“错误”]{
颜色:#A00;
}
.状态[数据已完成=“真”]{
颜色:#0A0;
}

已完成:
欢迎使用堆栈溢出!请拿着(你得到了一枚徽章!)通读一下,尤其是你最好的选择是做你的研究,做相关的主题,然后试一试。如果你在做了更多的研究和搜索后陷入困境,无法摆脱困境,请发布一份你的尝试,并明确指出你陷入困境的地方。人们会很乐意提供帮助。查看“ajax”和内置的
JSON.parse()
命令。作为@palaѕаа,你需要做一些研究。另外,代码尝试将有助于这个问题不会最终被否决。听起来不错,谢谢@palash和GetSet的帮助!非常感谢。非常确定您只需要访问:
data.response.item.isLive
如果您直接请求文件,请确保发送一个适当的响应类型头
application/json
,这样您就不需要解析。您能澄清到底是什么问题吗?响应没有嵌套在meta。。。。OP的格式不好,我会修复它。此外,您可以改为使用
fetch
执行此操作。您最近的编辑无效。不能从异步请求返回任何内容
isLive
将保留承诺,而不是
data.response.item.isLive
中的值。我已经为您回滚了它,因为前面的答案是正确的好的,当然,您是对的!当使用
getJSON()
时,您不需要
JSON.parse()
——jQuery会自动为您执行此操作。分析两次将导致错误。感谢您的评论使用第二种方法的原因是什么?为什么我们不能在第一个中做同样的事情?@Leonid.OK)谢谢。所以没有确定的理由这么做…@Leonid好吧,你可以在第一个承诺中处理坏数据,如果需要的话,手动拒绝链。请参阅:这是每个人都使用的约定。@Polywhirl对在线JSON文件(例如位于“”的文件)是否也适用这种方式?
let response = await fetch("ajax/test.json");

if (response.ok) {
  let isLive = await response.json().response.item.isLive;
} else {
  alert("Error HTTP: " + response.status);
}