fastjson 是alibaba的一个Json处理工具包。

1、使用  JSON.toJSONString   和  JSON.parseObject

fastjson只需要掌握两个静态方法:JSON.toJSONString和JSON.parseObject

fastjson示例:

User.java

public class User {

    private Long   id;
private String name; public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

Group.java

public class Group {

    private Long       id;
private String name;
private List<User> users = new ArrayList<User>(); public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<User> getUsers() {
return users;
}
public void setUsers(List<User> users) {
this.users = users;
} public void addUser(User user) {
users.add(user);
}
}

EncodeTest.java

public class EncodeTest {

    public static void main(String[] args) {
Group group = new Group();
group.setId(0L);
group.setName("admin"); User u = new User();
u.setId(1L);
u.setName("wangsan"); User li = new User();
li.setId(2L);
li.setName("lisi"); group.addUser(u);
group.addUser(li); String jsonString = JSON.toJSONString(group);
System.out.println(jsonString);
}
}

输出结果:{"id":0,"name":"admin","users":[{"id":1,"name":"wangsan"},{"id":2,"name":"lisi"}]}

DecodeTest.java

public class DecodeTest {
public static void main(String[] args) {
String jsonStr = "{‘id’:0,‘name’:‘admin’,‘users’:[{‘id’:1,‘name’:‘wangsan’},{‘id’:2,‘name’:‘lisi’}]}";
Group group = JSON.parseObject(jsonStr, Group.class);
System.out.println(group.getId());
System.out.println(group.getName()); System.out.println(group.getUsers().get(0).getId());
System.out.println(group.getUsers().get(0).getName());
}
}

2、net.sf.json.JSONException: Object is null

net.sf.json.JSONException: Object is null:

JSONArray或JSONObject转换时,对象内包含另一个对象,而该被包含的对象为NULL,抛出异常

参考资料:

1、fastjson  Github  地址 :https://github.com/alibaba/fastjson

2、JSON 之 fastjson 解析 : http://blog.sina.com.cn/s/blog_7ffb8dd501013qas.html

JSON-fastjson的更多相关文章

  1. JSON—fastJSON

    FastJSON的简介和作用? 1:基于java实现的JSON解析器和生成器 2:将java对象序列化成JSON字符串 3:将JSON字符串反序列化得到java对象 (在服务端生成java是很麻烦的事 ...

  2. json -- fastjson如何序列化@Transient的字段

    今天把fastjson包改成了1.2.58,发现@Transient标注的字段序列化后不见了,但是项目需要把@Transient字段序列化,处理方法: 原文:https://github.com/al ...

  3. 阿里巴巴json fastjson String转javaBean

    private Entity getEntity(String resp){        JSONObject jsonObj = (JSONObject) JSON.parse(resp);    ...

  4. Android总结之json解析(FastJson Gson 对比)

    前言: 最近为了统一项目中使用的框架,发现项目中用到了两种json解析框架,他们就是当今非常主流的json解析框架:google的Gson 和阿里巴巴的FastJson,为了废除其中一个所以来个性能和 ...

  5. 4.使用fastjson进行json字符串和List的转换

    转自:https://blog.csdn.net/lipr86/article/details/80833952 使用fastjson进行自定义类的列表和字符串转换 1.环境 jdk1.8,fastj ...

  6. Json解析之FastJson

    版权声明:转载请注明出处 https://blog.csdn.net/heqiangflytosky/article/details/37659943 1.FastJson介绍 FastJson是阿里 ...

  7. 利用FastJson,拼接复杂嵌套json数据&&直接从json字符串中(不依赖实体类)解析出键值对

    1.拼接复杂嵌套json FastJson工具包中有两主要的类: JSONObject和JSONArray ,前者表示json对象,后者表示json数组.他们两者都能添加Object类型的对象,但是J ...

  8. FastJson中@JSONField注解使用

    最近做项目中,使用了json格式在服务器之间进行数据传输.但是发现json格式数据不符合JAVA中的变量定义规则,并且难以理解,因此需要在后台中做二次处理,将数据处理成我们系统中定义的格式. 思路: ...

  9. JSON以及Java转换JSON的方法(前后端常用处理方法)

    )); map.put("arr", new String[] { "a", "b" }); map.put("func" ...

  10. fastjson 的使用总结

    前言 最近在开发过程中使用了大量的json作为前后端数据交换的方式,由于之前没有对json做过系统的学习,所有在使用过程中查阅了大量的文档与资料,这里主要记录了我在开发后对json以及fastjson ...

随机推荐

  1. C#接口等基础知识

  2. oracle(sql)基础篇系列(二)——多表连接查询、子查询、视图

        多表连接查询 内连接(inner join) 目的:将多张表中能通过链接谓词或者链接运算符连接起来的数据查询出来. 等值连接(join...on(...=...)) --选出雇员的名字和雇员所 ...

  3. win10 下oracle tns通过IP无法访问的解决办法

     在Oracle安装目录下\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN下找到listener.ora文件,编辑对应项为: LISTE ...

  4. Struts相关

    使用Struts2流程: 1.导入Struts2类包 2.在Web源代码文件夹中,创建名为struts.xml的配置文件.在其中定义Action对象,其关键代码如下: struts.xml: < ...

  5. 【签名之坑】Decmail.GetBits()

    decimal类型有GetBits()方法 可以获取到值的int[4]值,进而获取到byte[16]值 在c#里,0m和0.00m获取到的byte[]是不一样的(具体为何不一样,自己百度) 在sql里 ...

  6. python os.path模块

    os.path.abspath(path) #返回绝对路径 os.path.basename(path) #返回文件名 os.path.commonprefix(list) #返回list(多个路径) ...

  7. A library of generic data structures

    A library of generic data structures including a list, array, hashtable, deque etc.. https://github. ...

  8. JS写入日志

    try { var WSShell = WScript.CreateObject("WScript.Shell"); var FileSys = WScript.CreateObj ...

  9. 通过arcgis在PostgreSQL中创建企业级地理数据库

    部署环境: Win7 64位旗舰版 软件版本: PostgreSQL-9.1.3-2-windows-x64 Postgis-pg91x64-setup-2.0.6-1 Arcgis 10.1 SP1 ...

  10. HDU---BigZhuGod的粉丝

    Problem Description 真正的粉丝,是不需要题目描述的^_^.   Input 第一行输入数据组数T(1≤T≤100).接下来T行,每行一个有格式的字符串,详见样例,字符串长度不超过1 ...