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

由于sessionData后面是{},所以后面的对象必须是一个JSONObject,如果是sessionData后面是[]就可以使用JSONArray。一般sessionDataExpires,sessionDataKey,sessionDataValue字段都是从缓存或数据库中查出来的,我们查出来的数据都习惯用List<T>去接收,那么问题就来了,List对象怎么转成JSONObject呢?由于我翻了百度好几页都没有我想要的答案,所以才有了这篇博客。
要知道List对象怎么转成JSONObject,我们直接来看源码即可,在idea中把所有JSONObject的方法都.出来:

在所有方法中,我们很容易看到哪些方法是返回了一个JSONObject的,而这个方法正是我们需要的,我们先看到parseObject这个方法,他返回的就是一个JSONObject

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

这里我们可以看到toJSONString方法,传入要给Objec对象,就能得到一个String类型的结果,由于一切对象,不管是List ,Map还是其他对象,都属于Object对象,所以我们就可以使用toJSONString这个方法来满足我们的要求,最后看一下代码:
1 List list = new ArrayList(16);
2 JSONObject result = JSONObject.parseObject(JSONObject.toJSONString(list));
这里我们得到的result就是一个JSONObject格式的数据了,最后在通过一个JSONObject来拼接,就能得到我们的最终效果了,看代码:
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把方法都列出来,并找到自己想要的方法,这就是别人不用看源码就能很快上手一门技术的原因之一,只要看懂对象里面有什么方法,哪些是你需要用到的方法,你就离大神又进一步了。
List集合转JSONObject的更多相关文章
- JSONObject、 JsonObject、阿里fastJson、谷歌gson区别
JSON:JavaScript Object Notation Java对象表示法 Java中并没有内置的 JSON 解析,需要使用第三方类库.常用的类库如下 一.Gson : 古河开发的JSON 库 ...
- Extjs 学习笔记1
学习笔记 目 录 1 ExtJs 4 1.1 常见错误处理 4 1.1.1 多个js文件中有相同的控件,切换时无法正常显示 4 1.1.2 Store的使用方法 4 1.1.3 gridPanel ...
- android实现json数据的解析和把数据转换成json格式的字符串
利用android sdk里面的 JSONObject和JSONArray把集合或者普通数据,转换成json格式的字符串 JSONObject和JSONArray解析json格式的字符串为集合或者一般 ...
- json解析,异步下载(listview仅滑动时加载)Demo总结
异步加载的练习demo 主要涉及知识点: 1.解析json格式数据,主要包括图片,文本 2.使用AsynTask异步方式从网络下载图片 3.BaseAdapter的"优雅"使用 4 ...
- java递归、js递归,无限极分类菜单表
java-json import com.alibaba.fastjson.JSONObject; import java.util.ArrayList; import java.util.List; ...
- 更便捷的Mybatis增强插件——EasyMybatis
easy-mybatis是一个对Mybatis的增强框架(插件).在Spring集成Mybatis的基础上,将项目开发中对数据库的常用操作统一化.使用本框架可以很便捷的对数据库进行操作,提高开发效率, ...
- json学习系列(6)JSONObject和JSONArray是JDK的集合部分延伸
我一直觉得JSONObject和JSONArray是JDK集合部分的延伸,它们与JDK的List和Map一脉相承.通过研究JSONObject和JSONArray的结构,我们顺便也复习一下JDK的内容 ...
- 后台用JSONObject接收前端传过来的字符串数组,并转成集合(JSONObject---JSONArray---List)
前端传递数据: handleSubmit() {this.dialogVisible = false; const param = { 'bidSampleImgList': this.fileLis ...
- java范型集合中的成员排序
范型集合中的类是JsonObject,不是自定义类,如果是自定义类就直接取要比较的字段值. ArrayList<JSONObject> TList = new ArrayList<J ...
随机推荐
- python大数问题
python不需要特殊的声明,可以直接进行大数运算 验证:
- ASP.NET Core管道详解[6]: ASP.NET Core应用是如何启动的?[下篇]
要承载一个ASP.NET Core应用,只需要将GenericWebHostService服务注册到承载系统中即可.但GenericWebHostService服务具有针对其他一系列服务的依赖,所以在 ...
- Python【Python基础】
python的使用 1.python的两个版本:python2.0与python3.0.这两个版本的区别在于python3是不向下兼容python2的组件和扩展的,但是在python2.6和2.7的两 ...
- 第8.31节 Python中使用__delattr__清除属性数据
一. 引言 在前面几节我们介绍了__ getattribute__方法和__setattr__方法,分别实现了实例属性的查询和修改(含定义即新增),作为Python中数据操作必不可少的三剑客get.s ...
- PyQt(Python+Qt)学习随笔:QTreeWidgetItem项是否禁用disable、隐藏isHidden和允许选中isSelected
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 树型部件QTreeWidget的项QTreeWidgetItem对象具有是否禁用disable.是否 ...
- 第11.15节 Python正则表达式转义符定义的特殊序列
一. 引言 在前面<第11.13节 Python正则表达式的转义符"\"功能介绍>介绍了正则表达式转义符'\',只不过当时作为转义符主要是用于在正则表达式中表示元字符自 ...
- PyQt学习随笔:Model/View设计中支持View中展示数据的排序
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在model/view架构中,有两种方法可以实现排序,选择哪种方法依赖于底层Model.如果mode ...
- 【JAVA】SSM开源项目源码--城市学院移动后勤-毕业设计(Spring SpringMvc Mybatis Mui Redis )
项目简介 大学时期老师给我做的项目,学校后勤管理中心,也作为毕业设计项目. 有 后勤保修 二手交易 失物招领 后勤通知 等功能. 城市学院移动后勤 有APP端(webapp)和WEB端(PC) 后端使 ...
- pytorch SubsetRandomSampler 用法和说明
官网:https://pytorch.org/docs/stable/data.html?highlight=subsetrandomsampler#torch.utils.data.SubsetRa ...
- Mysql为什么使用b+树,而不是b树、AVL树或红黑树?
首先,我们应该考虑一个问题,数据库在磁盘中是怎样存储的?(答案写在下一篇文章中) b树.b+树.AVL树.红黑树的区别很大.虽然都可以提高搜索性能,但是作用方式不同. 通常文件和数据库都存储在磁盘,如 ...