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解析的更多相关文章

  1. JSON初体验(二):Gson解析

    今天,我们来介绍一下Gson的jar包的用法. JSON解析之Gson 特点:编码简介,谷歌官方推荐 数据之间的转换: 1.将json格式的字符串{}转换成为java对象 API: <T> ...

  2. JSON初体验(一):JsonObject解析

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

  3. SpringBoot初体验及原理解析

    一.前言 ​ 上篇文章,我们聊到了SpringBoot得以实现的幕后推手,这次我们来用SpringBoot开始HelloWorld之旅.SpringBoot是Spring框架对“约定大于配置(Conv ...

  4. Ruby on rails初体验(三)

    继体验一和体验二中的内容,此节将体验二中最开始的目标来实现,体验二中已经将部门添加的部分添加到了公司的show页面,剩下的部分是将部门列表也添加到公司的显示页面,整体思路和体验二中相同,但是还是会有点 ...

  5. Spring Cloud Alibaba 初体验(三) Nacos 与 Dubbo 集成

    一.新建项目 新建项目,只放置接口,用于暴露 Dubbo 服务接口 public interface GreetingService { String greeting(); } 二.provider ...

  6. CentOS 初体验三: Yum 安装、卸载软件

    一:Yum 简介 Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于RPM包管理,能够从指 ...

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

    1.$.extend({},defaults, options) 这样做的目的是为了保护包默认参数.也就是defaults里面的参数. 做法是将一个新的空对象({})做为$.extend的第一个参数, ...

  8. Swift初体验(三)

    /*******************************************************************************/ // 协议 protocol Des ...

  9. Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验

    Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出E ...

随机推荐

  1. 马云18年前制止偷井盖视频走红 2013-05-10 11:00:37 来源: 新快报(广州) 有0人参与 分享到 网易微博 新浪微博 腾讯空间 人人网 有道云笔记 在一次访谈中,即将卸任阿里巴巴CEO的马云自曝了他第一次上电视是在1995年。“我刚开始创

    马云18年前制止偷井盖视频走红 2013-05-10 11:00:37 来源: 新快报(广州) 有0人参与   分享到 网易微博 新浪微博 腾讯空间 人人网 有道云笔记 在一次访谈中,即将卸任阿里巴巴 ...

  2. [由于远程方关闭传输流,身份验证失败]一次处理支付接口bug记录

    因公司系统升级,出现突然有些银行卡不能支付的情况,最开始排查发现是第三方平台接口返回有问题: 返回如下: 从11月7日下午开始一直联系第三方,第三方开始排查,一直说是数据格式有问题. 修改格式以后问题 ...

  3. IntelliJ IDEA 2017 完美注册方法及破解方法

    本文使用破解方式注册. 下载破解文件JetbrainsCrack-2.6.2.jar 下载地址: http://idea.lanyus.com/ 开始破解 一.将下载的 JetbrainsCrack- ...

  4. bzoj5152 [Wc2018]通道

    题目链接 正解:不会做. 写一个爬山算法就过官方数据了(逃 具体来说就是每次随机一个根,然后迭代找最长路的那个点. 多随机几次取$max$就行了.正解以后再补.. #include <bits/ ...

  5. pexpect 初坑

    通过一个很坑的任务,最近认识了一个新坑: pexpect .其实基本的用法并不难,不过,我还是跟以前一样,把几个基本函数的坑蹚了个遍.有感而发,记录一下. 首先简单的介绍一下这个坑,哦不对,这个库.这 ...

  6. Yii的事件和行为的区别和应用

    关于 Yii 的事件和行为的描述,可参考 http://www.yiiframework.com/doc/api/1.1/CComponent 事件 事件模型就是设计模式中的“观察者模式”:当对象的状 ...

  7. 【转】Android学习系列(39)--Android主题和样式之系统篇(上)

    [基于最新的Android4.4的源码分析] 每家公司或者每个移动团队无不想开发出一套自己的UI框架,融入自己的设计和特性,这必然会去修改android的ui.所以,学习和理解android的UI设计 ...

  8. 如何选择PHP项目的开发方案?

    我说的项目开发方案并不是谈论到底用不用PHP去开发的问题,而是当你遇到一个项目,已经决定了用PHP,然后才来看的问题:用PHP的什么开发方案. 基本上有这么几种方案.各有各的说法,良莠不齐,我就谈谈我 ...

  9. 用Java+xml配置方式实现Spring数据事务(编程式事务)

    一.用Java配置的方式 1.实体类: Role public class Role { private int id; private String roleName; private String ...

  10. 用 crontab 实现开机自动运行脚本

    开发「bufpay.com 个人即时到账收款平台」的时候,订单状态和支付二维码的状态如果过期了要实时修改状态,最大效率利用支付二维码. 过期脚本需要开机启动,并且 deamon 运行,有很多办法可以开 ...