Groovy中对Json的操作
我们以一个List 为例,把它转成json,在转为List
实体类:
class Person {
String name
int age
def eat() {
println "${name} 在吃饭"
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
对象转Json
List转为Json和简单,只需要使用groovy.json包下的JsonOutput类即可
def list = [new Person(name: 'YangHang', age: 25)
, new Person(name: 'YangKunZe', age: 24)]
// 对象转成Json
def json = JsonOutput.toJson(list)
println JsonOutput.prettyPrint(json)
如上,我们就可以把一个集合转成Json形式,并格式化打印。
Json转对象
同理,我们需要使用groovy.json包下的JsonSlurper类即可
// Json转成对象
JsonSlurper jsonSlurper = new JsonSlurper()
def l = jsonSlurper.parseText(json)
assert l instanceof ArrayList
l.eachWithIndex { Object entry, int i ->
def p = new Person(entry)
l[i] = p
}
println l
这里有一个主意,Groovy并不知道集合里面装的对象是什么类型的,所以他会当成map,我们需要把map转成object