我在本地系统中保存了一个JSON文件并创建了一个JavaScript文件,以便读取JSON文件并打印出数据.这是JSON文件:
{"resource":"A","literals":["B","C","D"]}
Run Code Online (Sandbox Code Playgroud)
假设这是JSON文件的路径:/Users/Documents/workspace/test.json.
任何人都可以帮我写一段简单的代码来阅读JSON文件并在JavaScript中打印数据吗?
我有我在服务器上生成的JSON文件,因为页面是可见的,所以我想在客户端上访问它.基本上我想要实现的是:
我在我的html文档中声明了以下标记:
<script id="test" type="application/json" src="http://myresources/stuf.json">
Run Code Online (Sandbox Code Playgroud)
源中引用的文件具有JSON数据.正如我所见,数据已经下载,就像脚本一样.
现在,我如何在Javascript中访问它?我已经尝试使用和不使用jQuery访问脚本标记,使用多种方法来尝试获取我的JSON数据,但不知怎的,这不起作用.innerHTML如果json数据是在脚本中内联编写的,那么它本来可行.它不是,而不是我想要实现的目标.
页面加载后的远程JSON请求也不是一个选项,以防您想要建议.
我必须做一些非常简单的事情,但据我所知,似乎没有一种简单的方法可以做到这一点.我只想从远程源加载JSON数据,并使用jQuery将其存储在全局Javascript变量中.这就是我所拥有的:
var my_json;
$.getJSON(my_url, function(json) {
var my_json = json;
});
Run Code Online (Sandbox Code Playgroud)
my_json变量仍未定义.我认为这显然是一个范围问题.在我看来,$ .getJSON方法应该返回JSON,但它返回一个XMLHttpRequest对象.如果我这样做:
request = $.getJSON(my_url);
my_json = request.responseText.evalJSON();
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为在readystate == 4之前,responsetext保持为null.看来你必须使用回调函数来返回响应文本,因为它会在成功时触发.
这不可能是这么难!对?
这是我的Python3项目hiearchy:
projet
\
script.py
web
\
index.html
Run Code Online (Sandbox Code Playgroud)
从script.py,我想运行一个服务该web文件夹内容的http服务器.
这里建议这段代码运行一个简单的http服务器:
import http.server
import socketserver
PORT = 8000
Handler = http.server.SimpleHTTPRequestHandler
httpd = socketserver.TCPServer(("", PORT), Handler)
print("serving at port", PORT)
httpd.serve_forever()
Run Code Online (Sandbox Code Playgroud)
但这实际上是服务project,而不是web.如何指定要提供的文件夹的路径?
我试图获取本地文件的正确路径.我有以下目录:
Resources ->
data ->
file.json
js ->
folder ->
script.js
html ->
folder ->
file1.html
Run Code Online (Sandbox Code Playgroud)
我执行script.js的file1.html,与JS代码:
var answers = JSON.parse('../../data/file.json');
alert(answers);
Run Code Online (Sandbox Code Playgroud)
但它不起作用,即使警报没有开始.怎么了?
我也试过这个:
function readJSON(file) {
var request = new XMLHttpRequest();
request.open('GET', file, false);
request.send(null);
if (request.status == 200)
return request.responseText;
};
var temp = readJSON('../../data/file.json');
alert(temp);
Run Code Online (Sandbox Code Playgroud)
在这种情况下,警报未定义.
有没有办法使用jQuery从数据文件(例如JSON .js文件)加载数据?
例如:
$.get("file:///C:/objectData.js", function() { alert('Load was performed.'); });
Run Code Online (Sandbox Code Playgroud)
目前,JQuery似乎没有进行简单的HTTP GET,而是尝试对其执行OPTIONS请求,该请求在file:// URI上失败.我只想加载数据,以便可以在脱机环境中使用该站点(不安装Web服务器).
我的json文件看起来像这样
{
"Persons": {
"Name" : "e",
"Name2": "e",
"Id": "4700"
}, [...]
}
Run Code Online (Sandbox Code Playgroud)
我的代码如何将此本地json文件解析/加载到html文件中.我尝试了一切,但没有一个工作.
我需要.json从本地主机读取文件,但它不起作用!
文件内容如下:
[
{"source":"tw1",
"text":"fubar"},
{"source":"tw2",
"text":"foo"}
]
Run Code Online (Sandbox Code Playgroud)
我使用以下命令设置本地主机:python -m http.server 8888 &,该命令发布在D3.js此处。
我编写了以下 JavaScript 代码:
<script type="text/javascript" src="lib/jquery-1.9.1.js"></script>
<script>
$(document).ready(
$.getJSON("http://localhost/test.json", function(data){
document.write(data);
});
</script>
Run Code Online (Sandbox Code Playgroud) 所以我有一个客户想要一个不在任何地方托管但可以通过浏览器本地访问的网站(文件夹中的 html 文件)。现在棘手的部分是他们想在浏览器中自己更改此网站。所以我认为最好的方法是在本地进行配置。我创建了一个config.json并继续获取它:
$.getJSON("config.json", function(config){
//use config to alter the site
});
Run Code Online (Sandbox Code Playgroud)
我在这里发现现代浏览器会阻止这种请求,因为它被认为是不安全的。例如 Chrome 说:
Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
Run Code Online (Sandbox Code Playgroud)
现在的问题是:我怎样才能有一个文件来存储我的配置,以便 Javascript/jQuery 可以加载它。有没有办法要求用户允许文件访问?有没有一种完全不同的方法来完成这一切,更适合这项任务?
我期待任何建议,只要它是离线兼容的!
对于我当前的项目,我想在JavaScript中读取JSON文件的值.因为我对他们两个都不熟悉,我有点失落.使用下面的代码,我在JavaScript控制台中收到以下错误:
XMLHttpRequest无法加载file:///Users/Fabio/Desktop/SkriptET/files.json.收到无效回复.因此不允许原点'null'访问.
但是文件保存在那里.
的index.html
<html>
<head>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="javascript.js"></script>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
files.json
{
"category":
{
"Gleichstromkreise":
[
{
"title":"Elektrische Ladung Q",
"url":"/elladq.html",
"url_next": "/coulomb.html",
"url_prev": "/index.html"
},
{
"title":"Coulombsches Gesetz",
"url":"/coulomb.html",
"url_next":"/el_spannung.html",
"url_prev":"ellektrische_ladung_q.html"
}
],
"Elektrische Felder":
[
...
]
}
}
Run Code Online (Sandbox Code Playgroud)
javascript.js
$.getJSON( "files.json", function( data ) {
alert(data.category.Gleichstromkreise[0].title);
});
Run Code Online (Sandbox Code Playgroud) 我的本地计算机上有一个JSON文件,我想读取其内容并使用纯JavaScript在网络浏览器上显示它。任何涉及服务器端的内容都不适合我。要求仅在客户端执行此操作。有什么可能的解决方案?注意:不应使用ajax和与此相关的任何东西。
javascript ×8
json ×8
jquery ×5
getjson ×2
ajax ×1
html ×1
html5 ×1
localhost ×1
offline ×1
parsing ×1
python ×1
python-3.x ×1
script-tag ×1