我正在嘗試使用 groovy 從下面的嵌套 Json 結構中使用欄位“ColumnName”獲取“值”。由于“單元格”列下方的數字將是動態的,因此查找選項非常有效。有沒有辦法獲取值,在下面的示例中,基于“columnName”=“Type”的“CAMP”
{
"type": "CATEGORY"
"cells": {
"1309939": {
"value": 120000,
"columnName": "Planned spend"
},
"1309940": {
"value": 12000,
"columnName": "current spend"
},
"1309948": {
"value": "CAMP",
"columnName": "Type"
}
}
任何建議都會非常有幫助
uj5u.com熱心網友回復:
單線findResult:
import groovy.json.*
def json = new JsonSlurper().parseText '{ "type": "CATEGORY", "cells": { "1309939": { "value": 120000, "columnName": "Planned spend" }, "1309940": { "value": 12000, "columnName": "current spend" }, "1309948": { "value": "CAMP", "columnName": "Type" } }'
def res = json.cells.findResult{ k, v -> 'Type' == v.columnName ? v.value : null }
assert res == 'CAMP'
uj5u.com熱心網友回復:
您可以遍歷所有“單元格”,找到具有預期 columnName 的單元格,然后像這樣獲取值:
def json = '''{
"type": "CATEGORY",
"cells": {
"1309939": {
"value": 120000,
"columnName": "Planned spend"
},
"1309940": {
"value": 12000,
"columnName": "current spend"
},
"1309948": {
"value": "CAMP",
"columnName": "Type"
}
}'''
import groovy.json.*
def parsed = new JsonSlurper().parseText(json)
def result = parsed.cells*.value.find { element ->
element.columnName == "Type"
}.value
assert result == "CAMP"
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/510072.html
標籤:json时髦的
