Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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_Json_Xmlhttprequest - Fatal编程技术网

Javascript 如何将数据从JSON解析到我的实际元素?

Javascript 如何将数据从JSON解析到我的实际元素?,javascript,json,xmlhttprequest,Javascript,Json,Xmlhttprequest,我有一个XHR请求,它将数据从文件夹中的JSON文件传递到一个实际的元素,但我不知道如何传递像“title”或“date”这样的特定数据 JSON示例: { “标题”:“个人发展网络研讨会”, “日期”:“2021年4月21日”, “时间”:“上午8:00”, “网络研讨会”:{ “标题”:“个人发展网络研讨会”, “链接”:https://meet.google.com" } } 我的XHR请求如下所示 函数showEvents(){ var xhttp=newXMLHttpRequest(

我有一个XHR请求,它将数据从文件夹中的JSON文件传递到一个实际的
元素,但我不知道如何传递像“title”或“date”这样的特定数据

JSON示例:

{
“标题”:“个人发展网络研讨会”,
“日期”:“2021年4月21日”,
“时间”:“上午8:00”,
“网络研讨会”:{
“标题”:“个人发展网络研讨会”,
“链接”:https://meet.google.com"
}
}
我的XHR请求如下所示

函数showEvents(){
var xhttp=newXMLHttpRequest();
xhttp.onreadystatechange=函数(){
if(this.readyState==4&&this.status==200){
document.getElementById(“demo”).innerHTML=JSON.parse(xhttp.responseText);
console.log(this.responseText)
}
};
xhttp.open(“GET”,“/events.json”,true);
xhttp.send();
}

您的代码只是从事件文件中获取数据。但您从未调用函数showEvent(),这就是为什么它不在控制台中显示数据。请参阅下面的代码,以了解如何执行此操作


文件
.数据表
{
宽度:100%;
边框:2件双黑;
字号:18px;
}
函数showEvents(){
var xhttp=newXMLHttpRequest();
xhttp.onreadystatechange=函数(){
if(this.readyState==4&&this.status==200){
让dataJson=JSON.parse(xhttp.responseText);
displayResponseData(dataJson);
}
};
xhttp.open(“GET”,“/data.json”,true);
xhttp.send();
}
函数displayResponseData(数据){
让表=`
标题
日期
时间
网络研讨会标题
网络研讨会链接
${data.title}
${data.date}
${data.time}
${data.webinar.title}
${data.webinar.link}
`;
document.getElementById(“demo”).innerHTML=table;
}

您的代码只是从事件文件中获取数据。但您从未调用函数showEvent(),这就是为什么它不在控制台中显示数据。请参阅下面的代码,以了解如何执行此操作


文件
.数据表
{
宽度:100%;
边框:2件双黑;
字号:18px;
}
函数showEvents(){
var xhttp=newXMLHttpRequest();
xhttp.onreadystatechange=函数(){
if(this.readyState==4&&this.status==200){
让dataJson=JSON.parse(xhttp.responseText);
displayResponseData(dataJson);
}
};
xhttp.open(“GET”,“/data.json”,true);
xhttp.send();
}
函数displayResponseData(数据){
让表=`
标题
日期
时间
网络研讨会标题
网络研讨会链接
${data.title}
${data.date}
${data.time}
${data.webinar.title}
${data.webinar.link}
`;
document.getElementById(“demo”).innerHTML=table;
}

JSON.parse函数返回一个生成JSON的对象。在您的例子中是一个对象数组,因为您得到了所有返回的条目。 因此,您可以通过将数组的单个索引寻址为对象来访问单个字段。 例如:

function showEvents() {
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
           let jsonData = JSON.parse(xhttp.responseText);
           document.getElementById("demo").innerHTML = jsonData[0].webinar.title;
           console.log(this.responseText);
        }
    };
    xhttp.open("GET", "./events.json", true);
    xhttp.send();
}

这将获取第一个数据集。

JSON.parse函数返回一个生成JSON的对象。在您的例子中是一个对象数组,因为您得到了所有返回的条目。 因此,您可以通过将数组的单个索引寻址为对象来访问单个字段。 例如:

function showEvents() {
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
           let jsonData = JSON.parse(xhttp.responseText);
           document.getElementById("demo").innerHTML = jsonData[0].webinar.title;
           console.log(this.responseText);
        }
    };
    xhttp.open("GET", "./events.json", true);
    xhttp.send();
}

这将获取第一个数据集。

从您在注释中提供的图像来看,您返回的数据似乎是一个对象数组。您可以将值打印到
元素,如下所示:

//下面的var数据类似->var data=JSON.parse(xhttp.responseText);
风险值数据=[
{
“标题”:“个人发展网络研讨会”,
“日期”:“2021年4月21日”,
“时间”:“上午8:00”,
“网络研讨会”:{
“标题”:“个人发展网络研讨会”,
“链接”:https://meet.google.com"
}
},
{
“标题”:“测试标题”,
“日期”:“21.04.2099”,
“时间”:“上午11:00”,
“网络研讨会”:{
“标题”:“只是另一个网络研讨会”,
“链接”:https://meet.google.com"
}
}
];
让输出=”;
用于(数据对象){
输出+=obj.title+“-”+obj.date+“+obj.time+”
”; 输出+=obj.webinar.title+“:”+obj.webinar.link; 输出+=“

”;//两个新行 } document.getElementById('demo').innerHTML=output

从您在评论中提供的图像来看,您返回的数据似乎是一个对象数组。您可以将值打印到
元素,如下所示:

//下面的var数据类似->var data=JSON.parse(xhttp.responseText);
风险值数据=[
{
“标题”:“个人发展网络研讨会”,
“日期”:“2021年4月21日”,
“时间”:“上午8:00”,
“网络研讨会”:{
“标题”:“个人发展网络研讨会”,
“链接”:https://meet.google.com"
}
},
{
“标题”:“测试标题”,
“d