关于阿里巴巴FastJson......

Posted 黑马程序员成都中心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于阿里巴巴FastJson......相关的知识,希望对你有一定的参考价值。



广告植入:

成都黑马JavaEE基础22期12月25日开班

名额有限

还在犹豫的小伙伴要抓紧咯


最新消息

成都黑马前端与移动开发基础01期2019年3月11日开班

成都黑马Python基础01期2019年3月25日开班

首期基础班免费

首期优惠1000元


<dependency>

     <groupId>com.alibaba</groupId>

     <artifactId>fastjson</artifactId>

     <version>1.2.21</version>

</dependency>

fastjson入口类是com.alibaba.fastjson.JSON,主要的API是JSON.toJSONString,和parseObject。 常用的序列化操作都可以在JSON类上的静态方法直接完成。

// 把JSON文本parse为JSONObject或者JSONArray

public static final Object parse(String text);

// 把JSON文本parse成JSONObject   

public static final JSONObject parseObject(String text);

// 把JSON文本parse为JavaBean

public static final <T> T parseObject(String text, Class<T> clazz);

// 把JSON文本parse成JSONArray

public static final JSONArray parseArray(String text);

//把JSON文本parse成JavaBean集合

public static final <T> List<T> parseArray(String text, Class<T> clazz);

// 将JavaBean序列化为JSON文本

public static final String toJSONString(Object object);

// 将JavaBean序列化为带格式的JSON文本

public static final String toJSONString(Object object, boolean prettyFormat);

//将JavaBean转换为JSONObject或者JSONArray。

public static final Object toJSON(Object javaObject);

//序列化:

String jsonString = JSON.toJSONString(obj);

//反序列化:

VO vo = JSON.parseObject("...", VO.class);

//泛型反序列化:

import com.alibaba.fastjson.TypeReference;

List<VO> list = JSON.parseObject("...", new TypeReference<List<VO>>() {});

下面贴出自己代码,相当于是FastJson使用操作的一个集合,基本上满足开发中绝大部分的json解析和拼接了。

package heima.itcast.demo;

 

import com.alibaba.fastjson.JSON;

import com.alibaba.fastjson.JSONObject;

import com.alibaba.fastjson.TypeReference;

import heima.itcast.demo.model.Book;

 

import java.util.*;

 

public class Test {

    public static void main(String[] args) {

        //String转化为实体类Book

        StrToObject();

        //String转化为jsonObject

        StrToJsonObject();

        //实体类转换为json

        //多个实体类转换为json数组形式的string

        //String转化为List<Book>

        StrToListObject();

        //String转化为数组

        //String转化为ArrayList

        StrToArrayList();

        //map和json互相转换

        mapTo();

    }

    /**

     * String转化为实体类Book

     */

    public static void StrToObject() {

        StringBuilder sb = new StringBuilder();

        sb.append("{");

        sb.append("\"name\": \"教父三部曲\",");

        sb.append(" \"author\": \"马里奥·普佐\",");

        sb.append("  \"price\": \"100\"");

        sb.append("}");

        Book book = JSON.parseObject(sb.toString(), Book.class);

    }

 

    /**

     * String转化为jsonObject

     */

    public static void StrToJsonObject() {

        StringBuilder sb = new StringBuilder();

        sb.append("{");

        sb.append("\"name\": \"教父三部曲\",");

        sb.append(" \"author\": \"马里奥·普佐\",");

        sb.append("  \"price\": \"100\"");

        sb.append("}");

        JSONObject jsonObj = JSON.parseObject(sb.toString());

 

        for(Map.Entry<String, Object> entry : jsonObj.entrySet()){

     System.out.println(entry.getKey()+"--"+entry.getValue());

        }

    }

 

 

    /**

     * 实体类转换为json

     * 多个实体类转换为json数组形式的string

     * String转化为List<Book>

     */

    public static void StrToListObject() {

        List<Book> bookList =  new ArrayList<>();

        Book book1 = new Book("教父三部曲","马里奥·普佐",100) ;

        Book book2 = new Book("天才在左疯子在右","高铭",30) ;

 

        bookList.add(book1);

        bookList.add(book2);

        //实体类转换为json

        String book1Str = JSON.toJSONString(book1);

        //多个实体类转换为json数组形式的string

        String bookStr = JSON.toJSONString(bookList);

        //String转化为List<Book>

        List<Book> bookList3 = JSON.parseArray(bookStr,Book.class);

 

    }

 

 

    /**

     * String转化为数组

     * String转化为ArrayList

     */

    public static void StrToArrayList(){

        StringBuilder sb = new StringBuilder();

        sb.append("[{");

        sb.append("\"name\": \"教父三部曲\",");

        sb.append(" \"author\": \"马里奥·普佐\",");

        sb.append("  \"price\": \"100\"");

        sb.append("}]");

        // String转化为数组

        Book[] arrBook = JSON.parseObject(sb.toString(),new TypeReference<Book[]>(){});

        List<Book> list = Arrays.asList(arrBook);

        for (int i = 0; i < arrBook.length; i++) {

            System.out.println(arrBook[i].toString());

        }

        // String转化为ArrayList

        ArrayList<Book> bookList=  JSON.parseObject(sb.toString(),new TypeReference<ArrayList<Book>>(){});

 

        for(Book book : bookList){

            System.out.println(book.toString());

        }

    }

 

    /**

     * map和json互相转换

     */

    public static void mapTo(){

        Map<String,String> map = new HashMap<>();

        map.put("name", "教父三部曲");

        map.put("author", "马里奥·普佐");

        map.put("price", "100");

        //map转换为json

        String json = JSON.toJSONString(map);

        //json转换为map

        Map map1 = JSON.parseObject(json);

        System.out.println(map1.toString());

        Map<String,String> map2 = (Map<String,String>)JSON.parse(json);

 

    }

}

Book类代码

package heima.itcast.demo.model;

 

public class Book {

    private String name;

    private String author;

    private int price;

 

 

    public Book() {

    }

 

    public Book(String name, String author, int price) {

        this.name = name;

        this.author = author;

        this.price = price;

    }

 

    public String getName() {

        return name;

    }

 

    public void setName(String name) {

        this.name = name;

    }

 

    public String getAuthor() {

        return author;

    }

 

    public void setAuthor(String author) {

        this.author = author;

    }

 

    public int getPrice() {

        return price;

    }

 

    public void setPrice(int price) {

        this.price = price;

    }

}

以上是关于关于阿里巴巴FastJson......的主要内容,如果未能解决你的问题,请参考以下文章

阿里巴巴FastJSON使用实例

阿里巴巴fastjson的使用问题

阿里巴巴fastjson的使用

阿里巴巴旗下-FastJson工具类

Json转换Bean太过复杂?试试阿里巴巴的FastJSON

阿里巴巴fastjson 包的使用解析json数据