我只是问这个问题,因为我花了最近两天的时间阅读了无数其他类似的问题和教程,但仍然无法解决这个问题。
我有一个本地.json文件,我想加载并用JavaScript解析。该文件名为' fakeData.json'。其格式如下:
{"UIGroup": {"Parent": null, "Type": "public"}}
我使用它来尝试加载文件:
<script src="fakeData.json"></script>
我正在使用它来尝试解析文件:
var jsonData = JSON.parse('fakeData.json');
我收到了这些错误:
Uncaught SyntaxError: Unexpected token : fakeData.json:1
Uncaught SyntaxError: Unexpected token ILLEGAL : planetPage.html:11
请有人帮助我,谢谢。
答案 0 :(得分:3)
如果你想让它变得简单,那么我会在你的json内容前加上
var jsonData = {"UIGroup": {"Parent": null, "Type": "public"}}....
将您的文件转换为有效的js文件,然后使用
加载它<script src="fakeData.json.js"></script>
之后,由于文字对象符号,jsonData将具有所需的内容。
如果没有ajax / httprequest,则无法将json文件加载到页面中。
答案 1 :(得分:1)
您需要先将JSON文本放入字符串变量中,然后才能解析它。
通常使用the XMLHttpRequest object来实现。
<script src="fakeData.json"></script>
将尝试将JSON解析为JavaScript。这将抛出一个错误(就像你的情况一样)或创建一个数据结构,然后立即丢弃它,因为它没有在那里分配。
答案 2 :(得分:1)
var jsonData;
function reqListener () {
jsonData = JSON.parse(this.responseText);
console.log(jsonData);
};
var oReq = new XMLHttpRequest();
oReq.onload = reqListener;
oReq.open("get", "fakeData.json", true);
oReq.send();
答案 3 :(得分:0)
如果你想使用JSON字符串保持所有内联,并直接访问对象,你可以这样做:
// copy all the JSON text from the file an keep store it in a local string variable.
var jsonString = '{ "UIGroup": { "Parent": null, "Type": "public" }}';
// parse the string into a JavaScript object
var jsonObj = JSON.parse(jsonString);
// access the object as you usually would
alert(jsonObj.UIGroup.Type);