簡體   English   中英

Groovy Json解析

[英]Groovy Json parsing

嗨,我有點新,需要幫助來解析 hash,例如數據:在當前示例中,我想遍歷所有鍵TEST-A,TEST-B,TEST-C並更改它們的值(app-id),例如現在使用 jsonslurper 我可以像這樣解析和編輯每個鍵的值:

parsed.'TEST-A'[0].app_id = a

但我想要的是讀取鍵並分配值(這些值我將作為字符串讀取)


import groovy.json.*
data = '''
{
    "TEST-A":   [{ "app_id":"aaa" }],
    "TEST-B":   [{ "app_id":"bbb" }],
    "TEST-C":   [{ "app_id":"ccc" }]
}'''

def parsed = new JsonSlurper().parseText(data)
String a= 'test';
parsed.'TEST-A'[0].app_id = a
def result = JsonOutput.toJson(parsed)
println "result: $result"

通過讀取和寫入您的“json” object 可以如下所示:

import groovy.json.*
data = '''
{
    "TEST-A":   [{ "app_id":"aaa" }],
    "TEST-B":   [{ "app_id":"bbb" }],
    "TEST-C":   [{ "app_id":"ccc" }]
}'''

def parsed = new JsonSlurper().parseText(data)
String a= 'test';

parsed.each{ it.value[0].app_id = a } // < here is MAGIC!

def result = JsonOutput.toJson(parsed)
println "result:\n${JsonOutput.prettyPrint(result)}"

result:
{
    "TEST-A": [
        {
            "app_id": "test"
        }
    ],
    "TEST-B": [
        {
            "app_id": "test"
        }
    ],
    "TEST-C": [
        {
            "app_id": "test"
        }
    ]
}
parsed.each{k,v-> 
  if(k in ['TEST_A','TEST_B','TEST_C']) v[0].app_id = a 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM