對於一個奇怪的情況,這是一種奇怪的問題。我有一個很大的JSON結構,我想在運行groovy代碼時表示。我需要反射與JSON對象相同結構的groovy對象。從Json轉換成groovy代碼?
正如所預期的web搜索大多返回結果與常規/ JSON運行時轉換的東西,但沒有有關的事情,輸出Groovy代碼。
你可能認爲這懶但實際上它是一個巨大的JSON結構!一個轉換器可以節省數日!
對於一個奇怪的情況,這是一種奇怪的問題。我有一個很大的JSON結構,我想在運行groovy代碼時表示。我需要反射與JSON對象相同結構的groovy對象。從Json轉換成groovy代碼?
正如所預期的web搜索大多返回結果與常規/ JSON運行時轉換的東西,但沒有有關的事情,輸出Groovy代碼。
你可能認爲這懶但實際上它是一個巨大的JSON結構!一個轉換器可以節省數日!
您可以使用Groovy自己JsonSlurper
解析JSON對象:
import groovy.json.*
def json = '{"name":"john", "surname":"doe", "languages": ["groovy", "python"]}'
def obj = new JsonSlurper().parseText(json)
assert obj.name == "john"
assert obj.surname == "doe"
assert obj.languages.containsAll("python", "groovy")
當然類是無類型:它是隻在運行時才知道。如果你希望它是類型化的,你可以寫一個寫入基於一個示例代碼代碼(因爲json schema可能是罕見的)。
編輯:如果你想生成模型類的代碼,你可以嘗試JSONGen,其中「解析JSON創建客戶端源文件的JSON數據結構模型」。我沒有意識到Groovy的解決方案,但由於java-groovy集成是無縫的,所以它應該可以正常工作。
優秀的,看起來像解決方案,迫不及待地嘗試! – barrymac
如果你想你的JSON的Groovy的表現,你可以得到通過內置JsonSlurper。這將爲您提供可以使用的Java地圖和數據列表。
您可以使用(第三方)Jackson的data binding functionality(另請參閱this question)填充您編寫的代表您的JSON實體的更具體的自定義對象。
可以使用常規的JSON對象的實例,就像一個普通的常規對象。或者你想要輸入對象? – Will
你可以重申「當然搜索查詢只填補了運行時轉換的東西正常groovy json對象。」?無法解析該句子。 –
@威P是理想情況下,我想要輸入常規代碼 – barrymac