从json加载到HTML / JavaScript中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从json加载到HTML / JavaScript中相关的知识,希望对你有一定的参考价值。

因此,我正在做一个小项目,在该项目中,我需要将有关产品的一些数据放入json文件中,然后将该数据加载到html代码的javascript部分中。问题是我不断收到类似Microsoft Visual Code的错误消息,告诉我我要加载的对象的定义不足。这是我的JSON文件:

{    
"Data" : 
[        
{"Name": "Widget", "Price": 25.00, "Quantity": 5 },
{"Name": "Thing", "Price": 15.00, "Quantity": 5 },        
{"Name": "Doodad", "Price": 5.00, "Quantity": 10 } 
] 

}

这是HTML页面中的代码。

<form id="form1">
What product do you wish to search for? <input name="name" type="text" size="20">
</form>
<button onclick="outputprodus()">Submit
</button>
<script type="text/javascript" src="Vlad.json"></script>

<script>
    var userdata = JSON.parse(Data);
    var produs1_nume = userdata[0].Name;
    var produs1_pret = userdata[0].Price;
    var produs1_cantitate = userdata[0].Quantity;



    function outputprodus(){
    var x, y;
    x=document.getElementById("form1");
    y=x.elements["name"].value;
    document.write(y+" este produsul cautat.");
    document.write("<br>");
    document.write(produs1_nume+" costa "+produs1_pret+" pentru "+produs1_cantitate+" bucati");
    }
</script>

我加载数据是否错误,还是之后犯了一些错误?

答案

您还缺少一个数据。您应该访问JSON.parse(Data).Data,修改后的代码

var Data  = {    
"Data" : 
[        
{"Name": "Widget", "Price": 25.00, "Quantity": 5 },
{"Name": "Thing", "Price": 15.00, "Quantity": 5 },        
{"Name": "Doodad", "Price": 5.00, "Quantity": 10 } 
];

// You need to go one more step inside to access. 
// This is what you have been missing
var userdata = JSON.parse(Data).Data;
var produs1_nume = userdata[0].Name;
var produs1_pret = userdata[0].Price;
var produs1_cantitate = userdata[0].Quantity;

以上是关于从json加载到HTML / JavaScript中的主要内容,如果未能解决你的问题,请参考以下文章

尝试将 json 文件直接加载到 HTML 中并通过 javascript 读取其内容

如何将输入/选择值从网站保存到 XML/JSON 文件并使用 JavaScript 自动加载再次填充它们

使用javascript从jsondata.json文件填充html表[重复]

特殊字符u2028导致的Javascript脚本异常

如何使用 JavaScript 将 JSON 文件从 HTML 页面发送到 ESP

如何将 HTML/JavaScript 从嵌入式资源加载到 winform Web 浏览器