【发布时间】:2017-09-25 20:31:27
【问题描述】:
首先,我是使用 Javascript 和 JSON 的初学者。我试图在 Stack Overflow 上找到一个现有的答案,这会有所帮助,但大多数解释都超出了我的想象(超出了我的想象)!所以,我希望有人能提供帮助。
我有一个包含书籍信息的 JSON 文件,如下所示。实际文件包含大约 5000 本书的信息。
[
{
"Book": "The Phenomenon",
"Author": "Bob Bryant",
"Author_link": "abc"
},
{
"Book": "Supreme Commander of Idiots",
"Author": "Cynthia C",
"Author_link": "def"
},
{
"Book": "An Interesting Life",
"Author": "Doris Dodd",
"Author_link": "ghi"
}
]
将数组编号(0 到 4xxx)视为书号,我想生成一个随机数(小于 5000),然后使用 JavaScript 从 JSON 文件中提取有关该书的信息。理想情况下,我想将书名、作者姓名和作者链接分配给三个不同的变量,以便以后在面向用户的页面中使用。
我尝试创建一个 var,并使用 JSON.parse 从数组中提取特定数据,但它不起作用。我还看到一个例子,要求我使用这样的东西......
var requestURL = 'filename.json';
var request = new XMLHttpRequest();
request.open('GET', requestURL);
request.responseType = 'json';
request.send();
但是,我不知道这是如何工作的(不是说它正在工作)。如有任何有关如何解决此问题的指导,我将不胜感激。
【问题讨论】:
-
你的 JSON 文件真的是这样吗? JSON 文件必须以 { 开头并以 } 结尾。
-
查看从文件系统加载 JSON 的资源。 nodejs.org/api/fs.html 一旦你把它放在内存中,它就很简单。
var book = books[Math.floor((Math.random() * books.length) ] -
@Koborl 我不认为 OP 使用 Node 能够使用
fs。 -
除非 JSON 文件是动态创建的,否则只需在开头添加
var books =并将其包含在您的 HTML 中。无需请求或解析。这样您就可以使用books[i].Author等访问数组数据。 -
@Kesava 我想你已经看过this关于 JSON 有效性的回答了?
标签: javascript arrays json