通过搜索功能显示本地JSON数组

时间:2017-01-30 17:42:41

标签: javascript html json

我有一个300个数组(随机生成)的JSON文件,我试图通过HTML搜索输入进行搜索。结构如下:

{"username":"eshawh","first_name":"Elizabeth","last_name":"Shaw","gender":"Female","sexuality":"Proactive background hierarchy","language":"Nepali"},
{"username":"tromeroi","first_name":"Terry","last_name":"Romero","email":"tromeroi@amazon.co.jp","gender":"Male","sexuality":"Persistent intermediate structure","language":"Swati"},

2个问题:

  1. 是否可以从本地JSON文件中提取数据?或者可以 Jquery只在线运营? (有替代原生JS吗?)
  2. 如果没有,并且所有数组都必须在HTML中,那么哪些Javascript函数对于根据用户输入进行搜索和显示有用呢?
  3. 到目前为止,我有这个让我知道自己应该走向何方。

    user=users.find(el=>el.name=="Jack");
    for(key in user){
      alert(key+":"+user[key]);
    }
    

    然而,它使用了一些我不熟悉的术语。有更简单的方法吗?

    UPDATED 它无法访问服务器,因为该页面是游戏的一部分,该游戏运行在编译本地HTML页面的专用C#浏览器上。它旨在脱机播放。

1 个答案:

答案 0 :(得分:1)

数目:

  1. Javascript无法访问您的本地文件系统。这将是一个巨大的安全问题。您必须使用Web服务器(expressJS,Apache等)提供该本地文件。然后调用提供文件的URL,将数据加载到变量中,然后......对数据执行任何操作...即:通过它循环搜索您需要的内容。

  2. 我个人使用map。即:myArrayVariable.map(function(v,k){/ code /})(更多信息请https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

  3. 您提供的代码段是用ES6编写的。箭头符号是识别它的快速方法。 =>

    此:

    el=>el.name=="Jack"

    与:

    相同

    function(el){ return el.name == "Jack" }

    UPDATED :由于您有一个C#脚本编译代码,我建议您查看特定C#编译器可用的文件系统函数。我的经验是NodeJS,我正在考虑像https://nodejs.org/api/fs.html#fs_fs_readfile_file_options_callback这样的东西,但对于C#。