List集合转JSONObject

之前写代码喜欢用Map拼接返回去给前端,这样获得的也是一个标准的JSON,今天先不说Map的优缺点,咱们就来讲说JSONObject的使用,我用的是阿里的fastjson,先上代码,当咱们须要嵌套代码的时候,看需求:前端

 

 

因为sessionData后面是{},因此后面的对象必须是一个JSONObject,若是是sessionData后面是[]就能够使用JSONArray。通常sessionDataExpires,sessionDataKey,sessionDataValue字段都是从缓存或数据库中查出来的,咱们查出来的数据都习惯用List<T>去接收,那么问题就来了,List对象怎么转成JSONObject呢?因为我翻了百度好几页都没有我想要的答案,因此才有了这篇博客。数据库

要知道List对象怎么转成JSONObject,咱们直接来看源码便可,在idea中把全部JSONObject的方法都.出来:json

 

在全部方法中,咱们很容易看到哪些方法是返回了一个JSONObject的,而这个方法正是咱们须要的,咱们先看到parseObject这个方法,他返回的就是一个JSONObject缓存

 

 

找到了parseObject方法,可是问题又来了,咱们的参数是List,可是parseObject方法接收的参数是一个String类型(这个Stirng是JSON格式的String,不能任意写)。那咱们就继续点(.)方法,再找咱们须要的方法:session

 

 

这里咱们能够看到toJSONString方法,传入要给Objec对象,就能获得一个String类型的结果,因为一切对象,无论是List ,Map仍是其余对象,都属于Object对象,因此咱们就能够使用toJSONString这个方法来知足咱们的要求,最后看一下代码:ide

1         List list = new ArrayList(16);
2         JSONObject result = JSONObject.parseObject(JSONObject.toJSONString(list));

这里咱们获得的result就是一个JSONObject格式的数据了,最后在经过一个JSONObject来拼接,就能获得咱们的最终效果了,看代码:idea

1         List list = new ArrayList(16);
2         JSONObject result = JSONObject.parseObject(JSONObject.toJSONString(list));
3         JSONObject data = new JSONObject();
4         data.put("allMenuList",result);

 

写到这里,我只能说真香!顺带说一句,这里主要是理解怎么经过idea把方法都列出来,并找到本身想要的方法,这就是别人不用看源码就能很快上手一门技术的缘由之一,只要看懂对象里面有什么方法,哪些是你须要用到的方法,你就离大神又进一步了。spa

相关文章
相关标签/搜索