使用 gson gradle 从 JSON 读取键和值
Read key and value from JSON using gson gradle
我正在尝试从 JSON 字符串中读取键和值。我也不知道密钥,因此无法根据密钥检索值。我将不得不分别读取键和值。
JsonObject jsonObject = new JsonParser().parse(vaultJson).getAsJsonObject()
vaultData = jsonObject.get("data").asJsonObject
println "########################"
println "vault data as json object"
println vaultData //{"key1":"key1_val1","key2":"key2_val2"}
println "########################"
for(Object data : vaultData.entrySet()){
println data
println "in for loop"
//I m looking for something like, data.getKey and data.getValue
}
//OUTPUT of for loop
key1="key1_val1"
in for loop
key2="key2_val2"
in for loop
Sample JSON
{"request_id":"7d64a2b3-ac8b-9acf-e219-4686e8577fda","lease_id":"","renewable":false,"lease_duration":2764800,"data":{"key1":"key1_val1","key2":"key2_val2"},"wrap_info":null,"warnings":null,"auth":null}
如何在不同的字符串中读取 key1
和 key1_val1
?在我使用拆分字符串方法之前,我想检查一下 gson 中是否有一个可以发挥神奇作用的内置函数。
这就是我找到分离键和值的方法的方法。
for(Map.Entry<String,JsonObject> data : vaultData.entrySet()){
println "Key : " + data.key
String value = data.value.toString()
println "Value : " + value.replaceAll('^\"|\"$', "")
}
为什么不简单:
import groovy.json.*
Map json = new JsonSlurper().parseText('{"request_id":"7d64a2b3-ac8b-9acf-e219-4686e8577fda","lease_id":"","renewable":false,"lease_duration":2764800,"data":{"key1":"key1_val1","key2":"key2_val2"},"wrap_info":null,"warnings":null,"auth":null}')
json.each{ key, val ->
println "$key -> $val"
}
打印
request_id -> 7d64a2b3-ac8b-9acf-e219-4686e8577fda
lease_id ->
renewable -> false
lease_duration -> 2764800
data -> [key1:key1_val1, key2:key2_val2]
wrap_info -> null
warnings -> null
auth -> null
我正在尝试从 JSON 字符串中读取键和值。我也不知道密钥,因此无法根据密钥检索值。我将不得不分别读取键和值。
JsonObject jsonObject = new JsonParser().parse(vaultJson).getAsJsonObject()
vaultData = jsonObject.get("data").asJsonObject
println "########################"
println "vault data as json object"
println vaultData //{"key1":"key1_val1","key2":"key2_val2"}
println "########################"
for(Object data : vaultData.entrySet()){
println data
println "in for loop"
//I m looking for something like, data.getKey and data.getValue
}
//OUTPUT of for loop
key1="key1_val1"
in for loop
key2="key2_val2"
in for loop
Sample JSON
{"request_id":"7d64a2b3-ac8b-9acf-e219-4686e8577fda","lease_id":"","renewable":false,"lease_duration":2764800,"data":{"key1":"key1_val1","key2":"key2_val2"},"wrap_info":null,"warnings":null,"auth":null}
如何在不同的字符串中读取 key1
和 key1_val1
?在我使用拆分字符串方法之前,我想检查一下 gson 中是否有一个可以发挥神奇作用的内置函数。
这就是我找到分离键和值的方法的方法。
for(Map.Entry<String,JsonObject> data : vaultData.entrySet()){
println "Key : " + data.key
String value = data.value.toString()
println "Value : " + value.replaceAll('^\"|\"$', "")
}
为什么不简单:
import groovy.json.*
Map json = new JsonSlurper().parseText('{"request_id":"7d64a2b3-ac8b-9acf-e219-4686e8577fda","lease_id":"","renewable":false,"lease_duration":2764800,"data":{"key1":"key1_val1","key2":"key2_val2"},"wrap_info":null,"warnings":null,"auth":null}')
json.each{ key, val ->
println "$key -> $val"
}
打印
request_id -> 7d64a2b3-ac8b-9acf-e219-4686e8577fda
lease_id ->
renewable -> false
lease_duration -> 2764800
data -> [key1:key1_val1, key2:key2_val2]
wrap_info -> null
warnings -> null
auth -> null