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>

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

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

 

时间: 2024-08-07 08:40:13

JSON初体验(三):FastJson解析的相关文章

Swift初体验(三)

/*******************************************************************************/ // 协议 protocol Description{ func description() -> String mutating func aMutatingMethod() class func aTypeMethod() // func anOptionalMethod() } // 如果要声明可选择实现的方法,需要在func前

SpringBoot初体验及原理解析

一.前言 ? 我们来用SpringBoot开始HelloWorld之旅.SpringBoot是Spring框架对"约定大于配置(Convention over Configuration)"理念的最佳实践.SpringBoot应用本质上就是一个基于Spring框架的应用.我们大多数程序猿已经对Spring特别熟悉了,那随着我们的深入挖掘,会发现SpringBoot中并没有什么新鲜事,如果你不信,那就一起走着瞧呗! 二.SpringBoot初体验 首先,我们按照下图中的步骤生成一个Spr

JSON初体验(一)

在学校的呆了一段时间,马上又要回去工作了,不说了,我现在介绍一下json相关的内容 1.JSON数据格式(总的来说,json就是一个字符串) 1.整体结构 String json1 = "{"id":12,"name":"Tom"}"; String json2 = "[{"id":12,"name":"Tom"},{"id":12,&q

oracle初体验三----oracle10G的启动和关闭

oracle10G 的启动和关闭: 关闭:isqlplus和em(isqlplus/em没有关闭顺序,那一个先关闭都可以)--->监听--->数据库 isqlplus的关闭: netstat -tulnp | grep 5560  查看isqlplus的5560端口是否在监听 isqlplusctl  stop    netstat -tulnp | grep 5560  验证isqlplus是否被关闭 em的关闭: netstat -tulnp | grep 1158  查看em的1158端

$.extend({},defaults, options) --(初体验三)

1.$.extend({},defaults, options) 这样做的目的是为了保护包默认参数.也就是defaults里面的参数. 做法是将一个新的空对象({})做为$.extend的第一个参数,defaults和用户传递的参数对象紧随其后,这样做的好处是所有值被合并到这个空对象上,保护了插件里面的默认值. $.fn.myPlugin = function(options) { var defaults = { 'color': 'red', 'fontSize': '12px' }; va

XenApp / XenDesktop 7.6 初体验三 StoreFront和Citrix Receiver

前2天豆子已经配置了Site,VDA,Master Image,Machine Catalog和 Delivery Group.今天继续配置StoreFront和Citrix Reciver.这两个配置之后,用户就可以远程访问程序或者桌面了. 前面说了,豆子为了图省事,把所有的组件(除了数据库)都安装在同一个服务器上,不过今天发现这样会有些问题.StoreFront和Delivery Controller 最好还是分开安装,不然443端口貌似有冲突. 于是豆子新装了台Windows 2012 R

fastJson解析的理解

1,fastjson生产json字符串(javaBean,List<javaBean>,List<String>,list<Map>,list<Map<String,Object>)String jsonString=JSON.toJSONString(object);2. fastjson解析JSON字符串为四种类型 服务器端 fastjson_Project 1.FastJsonAction.java [java] view plaincopy p

JSON的三种解析方式

一.什么是JSON? JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度. JSON就是一串字符串 只不过元素会使用特定的符号标注. {} 双括号表示对象 [] 中括号表示数组 "" 双引号内是属性或值 : 冒号表示后者是前者的值(这个值可以是字符串.数字.也可以是另一个数组或对象) 所以 {"name": "Michael"} 可以理解为是一个包含name为Mich

(转)JSON 之FastJson解析

一.阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser.包括自称最快的JackJson:功能强大,完全支持Java Bean.集合.Map.日期.Enum,支持范型,支持自省:无依赖,能够直接运行在Java SE 5.0以上版本:支持Android:开源 (Apache 2.0) Fastjson API入口类是com.alibaba.fastjso