我的示例文件中包含以下json内容,但是在使用var imageData = Data()
resourceManager.requestData(for: targetResource, options: nil, dataReceivedHandler: { (resourceData) in
imageData.append(resourceData)
}) { (inError) in
if let error = inError {
//handle error
} else {
let imageSource = CGImageSourceCreateWithData(imageData as CFData, nil)
print("data: \(resourceData)")
handler(self.getDataFromImageSource(imageSource: imageSource))
}
}
命令时,结果始终为null:
jq
我想检索字节计数的值,即byteCount。结果应为480。
但是下面是我得到的输出:
{
"listingRequest": {
"id": "016a1050-82dc-1262-cc9b-4baf3e0b7123",
"uri": "http://localhost:9090/nifi-api/flowfile-queues/016a104a-82dc-1262-7d78-d84a704abfbf/listing-requests/016a1050-82dc-1262-cc9b-4baf3e0b7123",
"submissionTime": "04/28/2019 19:40:58.593 UTC",
"lastUpdated": "19:40:58 UTC",
"percentCompleted": 0,
"finished": false,
"maxResults": 100,
"state": "Waiting for other queue requests to complete",
"queueSize": {
"byteCount": 480,
"objectCount": 20
},
"sourceRunning": false,
"destinationRunning": false
}
}
我刚发现jq工具由于限制而无法安装在我们的服务器中。
如何通过sed / grep执行此操作?我尝试了cat queue.json | jq -r '.byteCount'
null
,但没有得到任何输出
答案 0 :(得分:3)
您需要指定完整路径:
P0 = list(P0)
T0 = list(T0)
答案 1 :(得分:0)
指定完整路径的另一种方法是使用..
,例如
$ jq '.. | .byteCount? // empty' queue.json
480
答案 2 :(得分:0)
或者,您可能已使用用于JSON的步行路径unix工具: jtc
,其中以常规方式实现索引和子脚本编制(如大多数编程语言一样) ):
bash $ <file.json jtc -w'[listingRequest][queueSize][byteCount]'
480
PS>披露:我是jtc
工具的创建者