javascript - 使用xpath从json对象快速检索数据

标签 javascript json xpath

我有一个非常大的数据集,可能包含数千条记录层次结构

records
 ->record1
   ->main_record
   ->minor_record
        ->fields
->record2
    ->main_record
        ->data_records
            ->fields_records
                ->fields

根据输入文件,这个层次结构可以更加休息,它可能包含数百个记录,例如 record1 record2,这里我必须提到的一件事是数据不是按级别排序。

现在假设我想在 fields_record 中查找 fields 而不是 XPath

record2/main_record/data_records/fields_records/fields

一种查找方法是循环整个数据集并找到所需的记录,但这是负担不起的,我用于搜索数据的方式是:

function main() {
  var dataset = getDataFromService();
  getResult(dataset, xpath);
}

function getdataset(dataset, nametosearch) {
  for (var i = 0; i < dataset.length; i++) {
    if (dataset[i].name == nametosearch) {
      return dataset[i];
    }
  }
}

function getResult(dataset, xpath) {
  if (xpath.indexOf('/') > -1) {
    var splitArray[] = xpath.split("/");
    for (var i = 0; i < splitArray.length; i++) {
      dataset = getdataset(dataset, splitArray[i]);
    }
    return dataset;
  } else {
    getdataset(dataset, xpath); //else part to get records at root level
  }
}

通过上面提到的代码,我可以获得我想知道的数据,这种方式有效吗?如果不是,使用 XPath 获取数据的更好选择是什么?

最佳答案

尝试 JSONPath.

示例:
杰森:

{
     "firstName": "John",
     "lastName" : "doe",
     "age"      : 26,
     "address"  : {
         "streetAddress": "naist street",
         "city"         : "Nara",
         "postalCode"   : "630-0192"
     },
     "phoneNumbers": [
         {
           "type"  : "iPhone",
           "number": "0123-4567-8888"
         },
         {
           "type"  : "home",
           "number": "0123-4567-8910"
         }
     ]
 }



路径:$.phoneNumbers[:1].type

结果:“iPhone”

关于javascript - 使用xpath从json对象快速检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30411019/

相关文章:

javascript - 将 agSetColumnFilter 与服务器端行模型结合使用

javascript - Angular 1.x : attribute of an object inside data-ng-repeat is set as a string, 不是对象

xml - 选择元素之间的多个 text() 节点

testing - 找不到元素 : Trying to verify a disabled button

java - Gson 和 argonauts - 使用 gson 将 javascript 数组转换为 json 字符串和 java pojo 时出现问题。试图让我的结构正确

WPF 绑定(bind)到元素属性的 XPath 可访问值

javascript - 连接未知数量的参数数组。抛出重复

javascript - 无法在jsf页面中执行Javascript

python - 展平 pandas 中的嵌套 json

javascript - 在 PHP 和 Javascript 中解析错误和 JSON 意外结束