数据传输: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

时间: 2024-10-29 10:46:47

数据传输:JSON-fastjson的相关文章

数据传输---json

{键:值} {"firstName":"Bill" , "lastName":"Gates"} 标准板式 值是一个数组的json: 外层键是employees,值是数组.数组里面又是json {"employees": [{ "firstName":"Bill" , "lastName":"Gates" }, { "f

json fastjson

fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean. 在pom.xml文件引入以下声明,就可以使用 <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> <dependency> <groupId>com.alibaba</groupId> <artif

阿里巴巴json fastjson String转javaBean

首先吐槽一下,这玩意儿竟然没有中文API,云栖社区竟然也没有统一的文档页面. 然后转入正题,最近在做跟某某某公司对接,返回数据为json形式的String字符串,我这边需要javabean,所以就需要转换,直接上代码了,搞了好几个小时才试出来的方法. private Entity getEntity(String resp){        JSONObject jsonObj = (JSONObject) JSON.parse(resp);        if (jsonObj.getJSON

Android平台json解析(FastJson Gson 大比拼)

前言: 最近为了统一项目中使用的框架,发现项目中用到了两种json解析框架,他们就是当今非常主流的json解析框架:google的Gson 和阿里巴巴的FastJson,为了废除其中一个所以来个性能和使用的大比拼. FastJson 当前使用版本 fastjson-1.2.11.jar 下载地址http://repo1.maven.org/maven2/com/alibaba/fastjson/1.2.11/ 对象转化成json: /** * 对象转化为json fastjson 使用方式 *

JSON数据解析

Json的全称:JavaScript Object Notation,其本质是一系列键值对的集合. Json建构于两种结构: (1) “名称/值”对的集合,即一个对象. (2) 值的有序列表,即数组. JSON的数据格式 JSON对象是一个无序的“‘名称/值’对”集合: 1个对象以"{}"大括号包围,即“{”(左括号)开始,“}”(右括号)结束. 每个“名称”和"值"之间以“:”冒号分隔; “名称/值" 对之间使用“,”逗号分隔.如: {  “name”:

fastjson转化复杂javabean

package json.fastjson; import java.util.ArrayList;import java.util.List; import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import com.alibaba.fastjson.serializer.SerializerFeature; public class Fastjson2JavaBean {    public stat

Json 详细解读 解析

JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. JSON Vs XML 1.JSON和XML的数据可读性基本相同 2.JSON和XML同样拥有丰富的解析手段 3.JSON相对于XML来讲,数据的体积小 4.JSON与JavaScript的交互更加方便 5.JSON对数据的

JSON以及Java转换JSON的方法

本文主要讲述如下几个内容: 1.JSON定义以及JSON的特性 2.如何在JavaScript中解释JSON格式数据 3.如何在Java代码中使用JSON(讲对象转换成JSON对象以及解释JSON字符串) 一.JSON w3c上对JSON有比较详细的介绍,链接http://www.w3school.com.cn/json/index.asp.下面仅讲述重要的几点. Json是 JavaScript 对象表示法(JavaScript Object Notation),是轻量级的文本数据交换格式,具

string xml json格式区别

string 是一种最普通的储存一串字符的数据格式 xml 是一种可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据.是一种可扩展标记语言.总结来说,xml可以把String字符串打上标签归类,具有比string格式更高的可读性,传输性,更适合互联网的数据传输 json 是轻量级数据交换格式.json是与xml类似的结构化数据格式,与xml相比json是更简易的语法

前端js解决fastjson $ref引用问题

<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> </head> <body> <p>方法:闯入json字符串</p> var json= FastJson.format(jsonString) <br> <p>方法:闯入json对象</p> va