java关于json的一些问题
今天重写代码的时候,发现了一个异常:java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntime
问题很快就解决了,是因为少了common-lang-2.6.jar。为什么会少了common-lang-2.6.jar,这是因为前一阵子想用 common-lang3包替换common-lang-2.6.jar。
百度了下,发现net.sf.json需要这么多:
1.commons-beanutils-1.9.1.jar
2.commons-collections-3.2.1.jar
3.commons-lang-2.6.jar
4.commons-logging-1.2.jar
5.ezmorph-1.0.6.jar
首先太麻烦了!其次commons-lang的最近一次更新是2011年。
从2011年之后,其它各种jsond实现包有许多更新(或者新出现),譬如:
- google的gson
- 阿里的 fastJson
- jackson
- jackSon的,主要是做json和object的映射,使用起来有点麻烦,如果不想做对象映射,那么可以不怎么考虑,当然效率也不错
- fastJson,总体不错,有许多简单的静态类实现
- gson,也还可以。
网络上,不怎么建议用net.sf.json,因为效率,没有确认过。以前的项目有用,估计是因为生成JSONobject,JSONArray比较方便。
---
考虑到各种因素,我已经不再让小组成员使用net.sf.json,可以使用fastjson和gson来替代,一个项目尽量使用一个json方案。
以后,需要使用object生成JSONArray的时候,只需要如下即可(红色字体部分):
package study.base.json.jackson; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.serializer.SerializerFeature; public class TestJackSon { public static void main(String[] args) { List<Map<String, Object>> lm = new ArrayList<Map<String, Object>>();
for (int i = 0; i < 3; i++) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("no", Integer.valueOf(i));
map.put("age", 12);
map.put("name", "luzhifei");
lm.add(map);
}
JSONArray o = (JSONArray) JSONArray.toJSON(lm); System.out.println(o.toString(SerializerFeature.PrettyFormat)); }
}
结果如下:
[
{
"name":"luzhifei",
"no":0,
"age":12
},
{
"name":"luzhifei",
"no":1,
"age":12
},
{
"name":"luzhifei",
"no":2,
"age":12
}
]
java关于json的一些问题的更多相关文章
- Java集合 Json集合之间的转换
1. Java集合转换成Json集合 关键类:JSONArray jsonArray = JSONArray.fromObject(Object obj); 使用说明:将Java集合对象直接传进JSO ...
- Java对象 json之间的转换(json-lib)
在这里主要简单的介绍一下,如何使用json-lib这个工具包来完成Java对象(或集合)与json对象(或集合)之间的转换~ 1. Java对象转换成json(既创建json) 关键类:JSONObj ...
- Java 的 JSON 开源类库选择比较(zz)
在看了作者的介绍,然后我又到mvnrepository上去看了各个库的的使用数之后,发现只能在jackson和gson之间做选择. 以下是原文 有效选择七个关于Java的JSON开源类库 April ...
- java中json包的使用以及字符串,map,list,自定义对象之间的相互转换
做一个map和字符串的转换,需要导入这些jar包,这是最基本的一些jar包. 经过多方尝试得出结论入下: 首先导入基本包:json-lib-2.2.3-jdk15.jar 如果没有这个jar包,程序是 ...
- java系列--JSON数据的处理
http://blog.csdn.net/qh_java/article/details/38610599 http://www.cnblogs.com/lanxuezaipiao/archive/2 ...
- Java之JSON数据
特别注意:使用JSON前需要导包 操作步骤地址:http://blog.csdn.net/baidu_37107022/article/details/70876993 1.定义 JSON(JavaS ...
- JSON以及Java转换JSON的方法(前后端常用处理方法)
)); map.put("arr", new String[] { "a", "b" }); map.put("func" ...
- java处理json与对象的转化 递归
整个类是一个case,总结了我在使用java处理json的时候遇到的问题,还有级联关系的对象如何遍历,json和对象之间的转换! 对于对象json转换中遇到的问题我参考了一篇博客,http://blo ...
- Java JWT: JSON Web Token
Java JWT: JSON Web Token for Java and Android JJWT aims to be the easiest to use and understand libr ...
- Java解析json字符串和json数组
Java解析json字符串和json数组 public static Map<String, String> getUploadTransactions(String json){ Map ...
随机推荐
- dotnet 读 WPF 源代码笔记 为什么加上 BooleanBoxes 类
在 WPF 框架,为什么需要定义一个 BooleanBoxes 类.为什么在 D3DImage 的 Callback 方法里面,传入的是 object 对象,却能被转换为布尔.本文将告诉大家为什么需要 ...
- dotnet 读 WPF 源代码笔记 了解 WPF 已知问题 用户设备上不存在 Arial 字体将导致应用闪退
本文来告诉大家 WPF 已知问题,在用户的设备上,如果不存在 Arial 字体,同时安装了一些诡异的字体,那么也许就会让应用在使用到诡异的字体的时候,软件闪退 在 WPF 的 FontFamily.c ...
- 11.Node节点维护
题目:Node节点维护 配置环境kubectl config use-context ek8s 将名为ek8s-node-0的node节点设置为不可用,并重新调度该node上所有运行的pods. 官方 ...
- Unsortbin attack原理及分析
Unsortbin attack原理 ️条件:首先要实现Unsortbin attack前提是可以控制Unsortbin attack chunk的bk指针 ️目的:我们可以实现修改任意地址为一个比较 ...
- Photoshop批量替换图层的方法
平时做图片,应该有遇到这样的场景,比如P奖状.P邀请函,内容是一样的,但是图片上的名字是不一样的,要是要P100张的话,一个个手动复制改名字肯定会吐血(╯°□°)╯︵ ┻━┻ Photoshop里有个 ...
- ruby操作excel
操作xlsx axlsx插件 操作xls spreadsheet插件
- Pageoffice6 实现后台生成单个PDF文档
在实际项目中经常遇到这样的场景,客户希望后台动态生成PDF文档,目前网上有一些针对此需求的方案,如果您想要了解这些方案的对比,请查看后台生成单个Word文档中的"方案对比". Pa ...
- ollama 源代码中值得阅读的部分
阅读 Ollama 源代码以了解其内部工作机制.扩展功能或参与贡献,以下是一些值得重点关注的部分: 1. 核心服务模块: 查找负责启动和管理模型服务的主程序或类,这通常是整个项目的核心逻辑所在.关注如 ...
- zabbix第二篇
常用命令 查看版本 [root@zabbix001 xx]# zabbix_server -V zabbix_server (Zabbix) 4.2.8 Revision cb5d5b10f4 28 ...
- 基于Python实现MapReduce
一.什么是MapReduce 首先,将这个单词分解为Map.Reduce. Map阶段:在这个阶段,输入数据集被分割成小块,并由多个Map任务处理.每个Map任务将输入数据映射为一系列(key, va ...