2017-01-06 47 views
0

我有以下的JSON文件值:提取從第一個數組元素與顛簸

{ 
    "pbid": 123, 
    "pid": 0, 
    "time": 1483551745000, 
    "timestamp": "2017-01-04 17:42:25", 
    "creationTime": 1483551789000, 
    "creationTimestamp": "2017-01-04 17:43:09", 
    "name": "myname", 
    "triggeredComponents": [ 
     { 
      "device": { 
       "did": 20, 
       "ip": "127.0.0.1", 
       "firstSeen": 1427474095000, 
       "lastSeen": 1483545006000, 
       "typename": "dnsserver" 
      }, 
      "time": 1483551789000 
     } 
    ] 
} 

使用顛簸,我需要轉換成以下這一點:

{ 
    "event_id" : 123,    (pbid) 
    "name" : "myname",    (name) 
    "did": "20",      (triggeredComponents[0].device.did) 
    "first_seen": 1427474095000,  (triggeredComponents[0].device.firstSeen) 
    "last_seen": 1483545006000  (triggeredComponents[0].device.lastSeen) 
} 

我沒事的基本移位(event_idname),但我無法弄清楚如何從數組中提取。這是我目前的嘗試(我已經嘗試了一些其他的方式,太):

[ 
    { 
    "operation": "shift", 
    "spec": { 
     "pbid": "event_id", 
     "name": "name", 
     "triggeredComponents" : { 
     "*": { 
      "did": "triggeredComponents[&1].device.did", 
      "first_seen": "triggeredComponents[&1].device.firstSeen", 
      "last_seen": "triggeredComponents[&1].device.lastSeen" 
     } 
     } 
    } 
    } 
] 

與它看來triggeredComponents數組將只包含一個對象供應商追逐後,所以我只需要看看第0個元素。

回答

2

規格 [ { "operation": "shift", "spec": { "pbid": "event_id", "name": "name", "triggeredComponents": { "0": { "device": { "did": "did", "firstSeen": "first_seen", "lastSeen": "last_seen" } } } } } ]

你失蹤之間 「triggeredComponents [0]」 和 「做」 的 「設備」。

+0

非常好,謝謝,這個作品現在非常有意義。我是Jolt的粉絲,但我似乎無法找到關於spec語法的任何具體文檔,只有例子... – Arj