gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 10:04:46 26 4
gpt4 key购买 nike

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

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com