groovy 把json串转化成对象
发布时间:2020-12-14 16:45:51 所属栏目:大数据 来源:网络整理
导读:今天有个任务,要把redis中缓存的json串读取出来并放到对象中,便于后续使用对象。相关代码如下: json串 { " GDS_ID ": "123" ," GDS_NAME ": "手机" } 对象定义 class TGdsInfo { def gdsId def gdsName} 完整代码 import groovy . json . JsonSlurper /**
今天有个任务,要把redis中缓存的json串读取出来并放到对象中,便于后续使用对象。相关代码如下: json串{
"GDS_ID":"123","GDS_NAME":"手机" }
对象定义class TGdsInfo {
def gdsId
def gdsName
}
完整代码import groovy.json.JsonSlurper
/** * Created by fangyunfeng on 2015/9/12. */
def gdsInfo = ''' { "GDS_ID":"123","GDS_NAME":"手机" } '''
class TGdsInfo {
def gdsId
def gdsName
}
/** * json串字段名到对象属性名映射函数 * @param s * @return */
def camle(String s){
return s.toLowerCase()
.replaceAll("_[A-Za-z]"){String it->it.toUpperCase()}
.replace('_','')
}
def gdsJson = new JsonSlurper().parseText(gdsInfo)
def gdsObj = new TGdsInfo()
gdsJson.each {Map.Entry entry -> String propName = camle(entry.key)
if(gdsObj.metaClass.hasProperty(gdsObj,propName)){
gdsObj[propName] = entry.value } } println("gdsId:"+gdsObj.gdsId) println("gdsName:"+gdsObj.gdsName)
输出结果gdsId:123
gdsName:手机
Process finished with exit code 0
注意,这里json串中的字段名跟对象中的属性名并不一致,所以需要通过camel函数做一下映射。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |