Javascript oboe.js-选择特定节点而不是所有匹配节点的模式?
我有一个通过http流获取的JSON数组。简化后,对象的结构如下所示:Javascript oboe.js-选择特定节点而不是所有匹配节点的模式?,javascript,json,node.js,Javascript,Json,Node.js,我有一个通过http流获取的JSON数组。简化后,对象的结构如下所示: { "ID" : 1234, "Item" : { "ID" : "ABC123", "name" : "a thing" } } 对象在一个数组中,所以实际上我得到: [{"ID":1234,"Item":{"ID":"ABC123","name":"a thing"}},{"ID":5678,"Item"....] 我正在使用解析流,当它到达时使用ID来做一些其他事情,但是我很难在对象中区
{
"ID" : 1234,
"Item" : {
"ID" : "ABC123",
"name" : "a thing"
}
}
对象在一个数组中,所以实际上我得到:
[{"ID":1234,"Item":{"ID":"ABC123","name":"a thing"}},{"ID":5678,"Item"....]
我正在使用解析流,当它到达时使用ID
来做一些其他事情,但是我很难在对象中区分ID
和Item.ID
。例如,此代码段将同时匹配ID
:
oboe(res).on("node", { "ID": function (id) {
console.log("found thing with ID of " + id);
}});
输出确认它正在获取两个ID
值,而不仅仅是第一个值,这正是我所需要的:
found thing with ID of 1234
found thing with ID of a thing
我尝试使用以下模式,但没有成功:
-两者都匹配ID
-两者都不匹配!。ID
-与两者匹配*.ID
-两者都匹配.ID
-两者都匹配ID.
tldnr:我正在努力找到正确的模式,即“匹配流中对象根上名为
ID
的节点,忽略该对象中的任何其他节点”。如OP问题注释中所述:!*。ID
应与数组中的节点对象ID
属性匹配。通过“离开根”是否表示对象的根属性?还是非根属性?如果您指的是根属性,则不应!ID
工作?如果没有,那么可能是!*。ID
是否有效?添加了关于它是一个对象数组而不是一个对象的说明…以及!*。ID
工作正常。把它加入一个答案,我会批准的。我现在明白问题所在了。谢谢你的轻推。:)