1、对象转字符串(这个容易)。
java对象可以看做json的另一种形式。
一把来说只需要,调用对象的toString()方法即可。
2、字符串转对象
java对象可以看做json的另一种形式。但反过来也就不一定了。
例如
[{"name":"name","data":[[12345,qwr][1256,dsfsd]},{"name":"obj","data":[[xvc,qxcccwr][xxxx,xxxxx]}]。
这个其实就是一个对象的toString(),控制台打印出来就是上面那样。
可以是这个List<obj> 。 这个obj包含两个属性,一个name为String类型,一个data是List<List<String>>类型。
反过来呢?叫你把上面这个字符串转成对象呢?那就有点复杂了。
到底该怎么转换呢?
这里提供一种思路。
1、去掉收尾 [ ]
得到{"name":"name","data":[[12345,qwr][1256,dsfsd]},{"name":"obj","data":[[xvc,qxcccwr][xxxx,xxxxx]}
2、然后去掉花括号
得到两个字符串
"name":"name","data":[[12345,qwr][1256,dsfsd]
"name":"obj","data":[[xvc,qxcccwr][xxxx,xxxxx]
3、再以逗号切割为数组,
得到 ["name":"name","data":[[12345,qwr][1256,dsfsd]]
4、取出数组,分别处理,第一个为json字符串,利用fastjson转为对象即可。第二个以字符串"冒号":",进行分割。
得到
name
name
data
[[12345,qwr][1256,dsfsd]]
5、将 [[12345,qwr][1256,dsfsd]],去掉收尾 [ ]
得到[12345,qwr][1256,dsfsd]
6、再以逗号",",split函数切割,得到数组
[[12345,qwr][1256,dsfsd]]
7、遍历其中,再以逗号分割
得到
12345,qwr
1256,dsfsd]
8,再装进集合。
至此所以最里面都已解析完毕,都能拿到值,也就可以转为对象了。
原文:https://www.cnblogs.com/xgzzzy16/p/14594769.html