数据传输:JSON-fastjson

Posted lashou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据传输:JSON-fastjson相关的知识,希望对你有一定的参考价值。

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的主要内容,如果未能解决你的问题,请参考以下文章

python 用于数据探索的Python代码片段(例如,在数据科学项目中)

将代码片段插入数据库并在 textarea 中以相同方式显示

如何从 Firebase 获取数据到 Recyclerview 中的片段?

实用代码片段将json数据绑定到html元素 (转)

片段中的Firebase数据不是持久的,会重新下载

将数据从底部工作表对话框片段传递到片段