Javascript 使用html在浏览器中显示JSON字典
所以我在StackExchange和其他网络论坛上看了看了看,看了看,看了看,看了看不同的答案,我仍然不明白这一点。 我有一个.json文件,其中包含excel文档中的信息。 我想在web浏览器上显示它->最简单的方法似乎是用html编写它 如何用html打开JSON文件??我很高兴在html脚本上显示整个JSON文件,但我希望能够将is设置为变量,并像普通JSON对象一样从中提取内容 我有下面的代码来创建一个表,这正是我想要做的——但是真正的JSON对象在一个单独的文件中Javascript 使用html在浏览器中显示JSON字典,javascript,html,json,browser,jquery,Javascript,Html,Json,Browser,Jquery,所以我在StackExchange和其他网络论坛上看了看了看,看了看,看了看,看了看不同的答案,我仍然不明白这一点。 我有一个.json文件,其中包含excel文档中的信息。 我想在web浏览器上显示它->最简单的方法似乎是用html编写它 如何用html打开JSON文件??我很高兴在html脚本上显示整个JSON文件,但我希望能够将is设置为变量,并像普通JSON对象一样从中提取内容 我有下面的代码来创建一个表,这正是我想要做的——但是真正的JSON对象在一个单独的文件中 <html&g
<html>
<head>
<title>Creation of array object in javascript using JSON</title>
<script language="javascript" >
document.writeln("<h2>JSON array object</h2>");
var books = { "Pascal" : [
{ "Name" : "Pascal Made Simple", "price" : 700 },
{ "Name" : "Guide to Pascal", "price" : 400 }
],
"Scala" : [
{ "Name" : "Scala for the Impatient", "price" : 1000 },
{ "Name" : "Scala in Depth", "price" : 1300 }
]
}
var i = 0
document.writeln("<table border='2'><tr>");
for(i=0;i<books.Pascal.length;i++)
{
document.writeln("<td>");
document.writeln("<table border='1' width=100 >");
document.writeln("<tr><td><b>Name</b></td><td width=50>"
+ books.Pascal[i].Name+"</td></tr>");
document.writeln("<tr><td><b>Price</b></td><td width=50>"
+ books.Pascal[i].price +"</td></tr>");
document.writeln("</table>");
document.writeln("</td>");
}
for(i=0;i<books.Scala.length;i++)
{
document.writeln("<td>");
document.writeln("<table border='1' width=100 >");
document.writeln("<tr><td><b>Name</b></td><td width=50>"
+ books.Scala[i].Name+"</td></tr>");
document.writeln("<tr><td><b>Price</b></td><td width=50>"
+ books.Scala[i].price+"</td></tr>");
document.writeln("</table>");
document.writeln("</td>");
}
document.writeln("</tr></table>");
</script>
</head>
<body>
</body>
</html>
使用JSON在javascript中创建数组对象
document.writeln(“JSON数组对象”);
var books={“Pascal”:[
{“名称”:“帕斯卡变得简单”,“价格”:700},
{“名称”:“帕斯卡指南”,“价格”:400}
],
“斯卡拉”:[
{“名称”:“不耐烦的Scala”,“价格”:1000},
{“名称”:“深度Scala”,“价格”:1300}
]
}
变量i=0
文件。书面形式(“”);
对于(i=0;i,您需要使用AJAX提取JSON
这将要求您运行web服务器,因为某些浏览器(如Chrome)会阻止对本地资源的请求。还请记住,AJAX和JSON请求将仅在同一域内工作(同源策略),否则您必须使用JSONP
如果您可以使用jQuery(因此这是一种最简单的方法),请看这里:
希望有帮助!我发现您没有包含标签,因此我将提供两个普通的javascript
解决方案:
如果文件位于可访问目录中,则可以按如下方式提取数据:
<script src="mydata.json.js"></script>
按如下方式定义JSON对象:
if (xhr.readyState === 4 && xhr.status === 200) {
data = JSON.parse(xhr.responseText); // This now contains the JSON object.
}
原件:
[{ "name" : "John", "date" : "01-27-2014" }]
修改为javascript
:
var data = '[{ "name" : "John", "date" : "01-27-2014" }]';
并将其保存到名为mydata.json.js
的纯文本文档中,例如(双扩展名与内容本身无关)
因此,它成为一个有效的javascript
文件,您可以将其加载到html中,如下所示:
<script src="mydata.json.js"></script>
称之为:
loadJSON('my-file.json',
function(data) { console.log(data); },
function(xhr) { console.error(xhr); }
);
更新:
您可以创建一个全局变量,例如数据
,以存储检索到的JSON并按如下方式重新定义函数:
if (xhr.readyState === 4 && xhr.status === 200) {
data = JSON.parse(xhr.responseText); // This now contains the JSON object.
}
请注意,xhr.responseText
是原始JSON字符串,JSON.parse(…)
函数返回包含该JSON数据的javascript集合
您可以使用服务器端语言(如PHP)来实现这一点,而无需ajax。您可以将原始JSON包含到Javascript变量中
下面是使用PHP包含该文件的示例:
<script>
//JSON included via PHP
var books = <?php include('books.json'); ?>;
</script>
要在初始HTML页面之外加载JSON,需要使用后台请求(通常称为AJAX)。加载JSON数据的最简单方法是使用Javascript库,该库包含可靠的文档、示例等,以及一个简单的界面来完成您想做的事情。感谢所有回复的人!我将尝试所有这些答案,看看哪一个最适合我的项目。后续问题:很多人提到了jquery(@Brian)这被广泛认为是“正确”的方法吗?我应该继续下载吗?jQuery不是“正确”的方法这样做的方式,但与调用jQuery的getJSON
方法相比,进行自己的AJAX调用是一个非常复杂的过程。您的代码向我表明,您对Javascript开发相对较新(我们都曾经是:P),因此,像jQuery这样的库可能是一个很好的出发点:)谢谢Brian,我会研究一下。我真的很喜欢这个答案(数字1),但这是一个预先存在的json文件(我认为我应该添加,而不是由我创建的),虽然我能够添加.js扩展名,但我不确定如何添加**var data='[{…}]'**参数。@Isa只需用引号'
或双引号“
若要将其设置为字符串并将其分配给数据
变量,请检查我的更新答案。对不起,我不知道如何执行此操作。我的代码需要能够使用json文件,而不需要我去操作实际的.json文件。如何远程添加变量(因为没有更好的词)?对不起,现在我明白了。在这种情况下,您最好使用REST方法(第二种解决方案)检索该文件,但该文件需要位于同一个域或同一个服务器中。非常感谢,我会给它一个快照谢谢您的帮助!那么我该如何调用这些对象呢?“书,帕斯卡,名字”?换句话说,PHP是否会更改中的格式?(这里是非常新的。很抱歉)PHP不会更改您的文件,它将按原样包含该文件。您将能够像访问任何javascript对象一样访问JSON对象。
{ "Pascal" : [
{ "Name" : "Pascal Made Simple", "price" : 700 },
{ "Name" : "Guide to Pascal", "price" : 400 }
],
"Scala" : [
{ "Name" : "Scala for the Impatient", "price" : 1000 },
{ "Name" : "Scala in Depth", "price" : 1300 }
]
}