【问题标题】:Javascript handling .json file's lines [closed]Javascript处理.json文件的行[关闭]
【发布时间】:2014-03-10 12:46:46
【问题描述】:

如何使用 java script 获取一个按行划分的 json 文件。就像在 python 中使用 readlines() 完成的那样。 我上传了一个 .json 文件,我需要在其中找到某些关键字,并显示找到这些关键字的行及其行号。 json文件示例如下:

{
    "data": [],
    "numFound": 0,
    "context": {
        "rows": "50",
        "from": "2014-01-11T17:48:40.000Z",
        "until": "2014-01-11T17:48:40.000Z",
        "start": 0,
        "query": "( json.system_version:3.4.42 json.id.discoveryServerUri:\"svcs.myharmony.com\" json.event_level:error json.crashcode:syncAbort )",
        "order": "desc"
    }

 }

【问题讨论】:

  • “逐行”读取 json 文件并没有什么意义。你的用例是什么?
  • 我们需要查看您的代码
  • 我希望用户上传一个文件,我需要在该文件中找到某些关键字及其行号。
  • 发布该 json 的示例
  • @rpax,我发布了一个示例。原始 json 文件最少 2500 行,最多 8000 行。

标签: javascript org.json


【解决方案1】:

我猜你想一次加载一个 json 文件。你可以这样做:

    function loadJSON(callback) {   

              var xobj = new XMLHttpRequest();
              xobj.overrideMimeType("application/json");
              //if you want it synchronous, replace with false
              xobj.open('GET', 'json_file.json', true);
              xobj.onreadystatechange = function () {
              if (xobj.readyState == 4 && xobj.status == "200") {
                callback(xobj.responseText);
              }
        };
        xobj.send(null);  
     }

然后,

readJSON(function(response) {
    // "read" the json
    var data = JSON.parse(response);
   //do whatever you want
 });

希望对你有帮助。

【讨论】:

  • 非常感谢。现在我想我正在到达某个地方。
  • @user3363920 +1 将不胜感激
  • @rpax ...您能否为我详细说明答案。我对上面的代码感到非常困惑。很抱歉给您带来不便,并在此先感谢您。
  • @Roy 如果您不详细说明您的问题,我无法详细说明我的答案。你想达到什么目的?请编辑您的问题
  • 我已经更新了问题。
【解决方案2】:
var raw =  // your json file contents here
var lines = raw.replace("\r\n", "\n").split("\n")

【讨论】:

  • @rpax 感谢您的编辑。发布答案时在我的手机上...
  • 有时我也会发生同样的事情。您是否尝试过 StackExchange 应用程序?我的手机不支持,你可以试试
猜你喜欢
  • 1970-01-01
  • 2012-04-13
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多