删不掉了~~~~留着了哈~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
最近工作中频繁使用到JSON字符换到对象,对象到JSON字符串的转化
使用源生提供的JSON非常不方便,
这里我们使用fastjson,
一个阿里提供的工具类,
操作起来十分简单方便,
JSON字符串 到 对象
//JSONObject对象可以简单理解成为对象,通过各种get方法传入key值,即可取出value
JSONObject jsonBodyEntity = JSON.parseObject(strBody);
BdTokenVerifyResult verifyResult = JSON.parseObject(response, BdTokenVerifyResult.class);
当然也可以直接转成对应对象
但是第二种方式不支持对象中有类似list,map等,只支持简单的转换
对象 到 JSON字符串
JSON.toJSONString(retjo)
简单的toJSONString即可
如果包含了多层的嵌套,其实我们一点也不怕!!
这种情况一般出现在接收到JSON字符串的时候,其中嵌套了好几层,又对象,又List的,
但是原则只有一个,无非就是一层一层的 扒 !!!!
无论是其中包含对象或者list,
{"app":{"plist":["1","2","3"],"token":"123456"}}
可以看到类似这种嵌套,是一个对象转为String传递过来的,
其中app代表了一个对象,其中属性为plist,是一个ArrayList<String>类型,
后面token为String类型变量,
首先通过上面的方法把JSON的String转化成JSONObject,肯定是没错的
String app = JSONObject.getString("app");
定位到对象app,取出String类型的对象app
这时我们想要取得list中的每个值,要进行下一次转化
JSONObject ojbcApp = JSON.parseObject(app);
又转为JSONObject对象,下一步操作大家也就知道了,取值
String list = ojbcApp.getString("app");
下一步,即可把得到的JSON字符串形式的list转换为我们想要的ArrayList<String>即可
List<String> list = new ArrayList<String>();
list = JSON.parseArray(list, String.class);
这里因为我们传入的是ArrayList<String>,后面加的就是String.class,
在实际使用中,加上有关Object.class即可
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
That's All~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~