首页 > 代码库 > JSON初体验(三):FastJson解析

JSON初体验(三):FastJson解析

JSON解析之FastJson(阿里巴巴解析开源)
  特点:
    Fastjson是一个Java语言编写的高性能功能完善的JSON库,它采用的
    是一种"假定有序快速匹配"的算法,把JSON Parse的性能提升到极致,
    是目前Java语言中最快的JSON库。

  1.将json格式{}转换为Java对象
    API:
      <T> T parseObject(String json,Class<T> classOfT);
    步骤:
      1.导入fastjson的jar包
      2.JSON调用parseObject()方法,获取转换后的java对象
      例如:
        ShopInfo shopInfo=JSON.parseObject(json,ShopInfo.class);

    代码:

    ShopInfo的类:

    

public class ShopInfo {
  private int id;
  private String name;
  private double price;
  private String imagePath;

  public ShopInfo() {
  }

  public ShopInfo(int id, String name, double price, String imagePath) {
	this.id = id;
	this.name = name;
	this.price = price;
	this.imagePath = imagePath;
  }

  public int getId() {
	return id;
  }

  public void setId(int id) {
	this.id = id;
  }

  public String getName() {
	return name;
  }

  public void setName(String name) {
	this.name = name;
  }

  public double getPrice() {
	return price;
  }

  public void setPrice(double price) {
	this.price = price;
  }

  public String getImagePath() {
	return imagePath;
  }

  public void setImagePath(String imagePath) {
	this.imagePath = imagePath;
  }

  @Override
  public String toString() {
	return "ShopInfo{" +
	  "id=" + id +
	  ", name=‘" + name + ‘\‘‘ +
	  ", price=" + price +
	  ", imagePath=‘" + imagePath + ‘\‘‘ +
	  ‘}‘;
  }
}

  解析json数据:

public class One {
  public static void main(String[] args) {
	String json = "{\n" +
		"    \"id\":1,\n" +
		"    \"name\":\"豆瓣\",\n" +
		"    \"price\":12.3,\n" +
		"    \"imagePath\":\"http://www.douban.com\"\n" +
		"}";
	ShopInfo shopInfo = JSON.parseObject(json, ShopInfo.class);
	System.out.println(shopInfo.toString());
  }
}

  

  2.将json格式的字符串[]转换为Java对象的List
    API:
      List<T> parseArray(String json,Class<T> classOft);
    步骤:
      1.导入fastjson的jar包
      2.JSON调用parseArray()方法,获取转换后的java集合
      例如:
        List<ShopInfo> shopInfos = JSON.parseArray(json,ShopInfo.class);
    代码:

public class Two {
  public static void main(String[] args) {
	String json = "[\n" +
		"    {\n" +
		"        \"id\":1,\n" +
		"        \"imagePath\":\"http://www.baidu.com\",\n" +
		"        \"name\":\"大虾1\",\n" +
		"        \"price\":12.3\n" +
		"    },\n" +
		"    {\n" +
		"        \"id\":2,\n" +
		"        \"imagePath\":\"http://www.douban.com\",\n" +
		"        \"name\":\"大虾2\",\n" +
		"        \"price\":12.5\n" +
		"    }\n" +
		"]";
	List<ShopInfo> shopInfos = JSON.parseArray(json, ShopInfo.class);
	System.out.println(shopInfos);
  }
}

 

  3.将java对象转换为json字符串{}
    API:
      String toJSONString(Object object);
    步骤:
      1.导入fastjson的jar包
      2.JSON调用toJSONString()方法,获取转换后的json数据
      例如:
        ShopInfo shopInfo = new ShopInfo(1,"鲍鱼",255.5,"baoyu");
        String json = JSON.toJSONString(shopInfo);
    代码:

  

public class Three {
  public static void main(String[] args) {
	ShopInfo shopInfo = new ShopInfo(1, "哔哩哔哩", 125.5, "www.blibli.com");
	String json = JSON.toJSONString(shopInfo);
	System.out.println(json);
  }
}

  

  4.将Java对象的List转换为json的字符串[]
    API:
      String toJSONString(Object object);
    步骤:
      1.导入fastjson的jar包
      2.JSON调用toJSONString()方法,获取转换后的json数据
      例如:
        List<ShopInfo> shops = new ArrayList<>();
        ShopInfo shopInfo1 = new ShopInfo(1, "哔哩哔哩", 255.5, "www.blibli.com");
        ShopInfo shopInfo2 = new ShopInfo(1, "豆瓣", 255.5, "www.douban.com");
        ShopInfo shopInfo3 = new ShopInfo(1, "知乎", 255.5, "www.zhihu.com");
        shops.add(shopInfo1);
        shops.add(shopInfo2);
        shops.add(shopInfo3);
        String json = JSON.toJSONString(shops);
    代码:

public class Four {
  public static void main(String[] args) {
	ShopInfo shopInfo1 = new ShopInfo(1, "哔哩哔哩", 255.5, "www.blibli.com");
	ShopInfo shopInfo2 = new ShopInfo(1, "豆瓣", 255.5, "www.douban.com");
	ShopInfo shopInfo3 = new ShopInfo(1, "知乎", 255.5, "www.zhihu.com");
	List<ShopInfo> list = new ArrayList<ShopInfo>();
	list.add(shopInfo1);
	list.add(shopInfo2);
	list.add(shopInfo3);
	String json = JSON.toJSONString(list);
	System.out.println(json);
  }
}

  

最后补一下fastjson在maven中的地址:

  <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.32</version>
  </dependency>

最后,再说一句,和本节内容无关的事:

翟哥,我错了,我真的错了,原谅我吧!

 

JSON初体验(三):FastJson解析