2015-06-26 29 views
0

我有一個JSON數組,我通過http流獲取。簡化,對象結構是這樣的:oboe.js - 選擇特定節點而不是全部匹配的模式?

{ 
    "ID" : 1234, 
    "Item" : { 
    "ID" : "ABC123", 
    "name" : "a thing" 
    } 
} 

的對象是一個數組,因此在現實中我越來越:

[{"ID":1234,"Item":{"ID":"ABC123","name":"a thing"}},{"ID":5678,"Item"....] 

我使用oboe.js因爲它到達解析流並使用ID做一些其他的事情,但我很難區分對象中的IDItem.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關閉流中對象的根,並忽略該對象中的任何其他對象「。

+0

通過「脫離根」你是指對象的根屬性?或者是一個非根的屬性?如果你的意思是root屬性,不應該使用'!ID'工作嗎?如果不是,那麼也許'!*。ID'會起作用? –

+0

增加了關於它是一個對象數組而不僅僅是一個對象的說明......並且''*。ID'工作。把它放到答案中,我會批准它。我現在看到了這個問題。感謝您的推動。 :) –

回答

2

正如在OP的問題的評論中提到的:!*.ID應該匹配數組中的節點對象ID屬性。

相關問題