Q1:
Class A{
List<String> arr;
String name;
}
Class B{
String arr; // List toJSON
String name;
public String toString{
return "{\"arr\":\""+arr+"\",\"name\":\""+name+"\"}"; // standard JSONString
}
}
现在得到 B
对象 如何序列化成 A
对象
Q2:
现在有N个文件,每个文件都是一个Object
(不同Class
)的JSONString,
如果要你设计一个框架 从 File
--> Object
--> DB
你会怎么设计?
没看过
json
序列化是怎么做,我们一起来通过代码来猜下是怎么做的一般做法
序列化代码
j.toString()
得到就是{"name":"lihai","age":18}
反序列化代码
没有getter方法
还是原来的测试代码
这个
j.toString()
竟然是{}
,一个空的JSON得到的
p
属性值都有,所以反序列化是正常的.没有setter 方法
序列化测试代码
j.toString()
得到是{"name":"Tom","age",23}
,好吧序列化正常了反序列化测试代码
p
的name
是Tom
而不是lihai
,如果Tom
这样的写法不利于你理解,那我们再来修改下结果自己验证去把.
构造函数
测试方法就变成这样了
很显然
p.toString()
还是{}
这次直接报错了
总结
看了这几个例子,我们可得出3个结论
getter
方法 往json
的map里面put
值的setter
方法 往对象里面设值的其他的情况