Android 中的Json解析工具fastjson 、序列化、反序列化

简介: Android中通常需要访问服务器,然而服务器返回的数据很多时候都是Json格式   1、fastjson简介      阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:    速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。
Android中通常需要访问服务器,然而服务器返回的数据很多时候都是Json格式

 

1、fastjson简介

     阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:
    速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括自称最快的JackJson;

    功能强大,完全支持JavaBean、集合、Map、日期、Enum,支持范型,支持自省;无依赖,能够直接运行在Java SE 5.0以上版本;

    支持Android;开源 (Apache 2.0)

 

2、fastjson下载地址

     gitHub 下载地址 : https://github.com/alibaba/fastjson

     Android jar包下载: http://repo1.maven.org/maven2/com/alibaba/fastjson/1.1.43.android/

   

3、常用的方法

    (1) 将JsonArray字符串转化成 list 集合, 比如:

         JSONArray array = 。。。。

         List<ADBeen> adbeenList = new ArrayList<ADBeen>() ;

         adbeenList = JSON.parseArray( array.toString() , ADBeen.class);

 

    (2)  将JavaBean序列化为JSON文本 

       JSON.toJSONString( Object object )

 

    (3) 日期格式化

    

	public void test5(){      
		Date date=new Date();    
		//输出毫秒值   
		System.out.println(JSON.toJSONString(date));  
		//默认格式为yyyy-MM-dd HH:mm:ss    
		System.out.println(JSON.toJSONString(date, SerializerFeature.WriteDateUseDateFormat));  
		//根据自定义格式输出日期  
		System.out.println(JSON.toJSONStringWithDateFormat(date, "yyyy-MM-dd", SerializerFeature.WriteDateUseDateFormat));   
	}

 

   4  fastjson 解析json字符串为四种类型

      1. JavaBean

          Person person = JSON.parseObject(jsonString, Person.class);

      2. List<JavaBean>

          List<Person> listPerson =JSON.parseArray(jsonString, Person.class);

      3. List<String>

          List<String> listString = JSON.parseArray(jsonString, String.class);

      4. List<Map<String,Object>>

          List<Map<String, Object>> listMap = JSON.parseObject(jsonString, new TypeReference<List<Map<String,Object>>>(){}); 

            (注意:此处可看出fastjson反射机制比gson更准确, id = 1001 通过fastjson反射仍是 id = 1001 , 而通过gson反射结果 为 id =1001.0 ,

              参考前篇程序运行结果图GSON方式生成和解析json数据)

 

5、List集合转化为JSON字符串 

package com.app;

import java.io.Serializable;

public class User implements Serializable{
    private static final long serialVersionUID = 1L;
    
    private String name ;
    private String age  ;
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }
}

 

   User user1 = new User() ;
   user1.setName( "jack" ) ;
   user1.setAge( "30" );
        
   User user2 = new User() ;
   user2.setName( "sam" ) ;
   user2.setAge( "45" );
        
   List<User> list = new ArrayList<User>() ;
   list.add( user1 ) ;
   list.add( user2 ) ;
        
   HashMap<String, Object> map = new HashMap<String, Object>();  
   map.put( "data", list ) ;
        
   String string = JSON.toJSONString( map ) ;
        
   System.out.println( "ssss" + string );

运行结果:{"data":[{"age":"30","name":"jack"},{"age":"45","name":"sam"}]}

 

相关文章
|
JSON 缓存 自然语言处理
多语言实时数据微店商品详情API:技术实现与JSON数据解析指南
通过以上技术实现与解析指南,开发者可高效构建支持多语言的实时商品详情系统,满足全球化电商场景需求。
|
存储 JSON 关系型数据库
【干货满满】解密 API 数据解析:从 JSON 到数据库存储的完整流程
本文详解电商API开发中JSON数据解析与数据库存储的全流程,涵盖数据提取、清洗、转换及优化策略,结合Python实战代码与主流数据库方案,助开发者构建高效、可靠的数据处理管道。
|
JSON 算法 API
淘宝商品评论API接口核心解析,json数据返回
淘宝商品评论API是淘宝开放平台提供的数据服务接口,允许开发者通过编程方式获取指定商品的用户评价数据,包括文字、图片、视频评论及评分等。其核心价值在于:
|
JSON 定位技术 PHP
PHP技巧:解析JSON及提取数据
这就是在PHP世界里探索JSON数据的艺术。这场狩猎不仅仅是为了获得数据,而是一种透彻理解数据结构的行动,让数据在你的编码海洋中畅游。通过这次冒险,你已经掌握了打开数据宝箱的钥匙。紧握它,让你在编程世界中随心所欲地航行。
392 67
|
JSON Java Go
【GoGin】(2)数据解析和绑定:结构体分析,包括JSON解析、form解析、URL解析,区分绑定的Bind方法
bind或bindXXX函数(后文中我们统一都叫bind函数)的作用就是将,以方便后续业务逻辑的处理。
606 3
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
638 1
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
566 1
|
12月前
|
XML JSON 数据处理
超越JSON:Python结构化数据处理模块全解析
本文深入解析Python中12个核心数据处理模块,涵盖csv、pandas、pickle、shelve、struct、configparser、xml、numpy、array、sqlite3和msgpack,覆盖表格处理、序列化、配置管理、科学计算等六大场景,结合真实案例与决策树,助你高效应对各类数据挑战。(238字)
1471 0
|
JSON 自然语言处理 API
多语言实时数据淘宝商品评论API:技术实现与JSON数据解析指南
淘宝商品评论多语言实时采集需结合官方API与后处理技术实现。建议优先通过地域站点适配获取本地化评论,辅以机器翻译完成多语言转换。在合规前提下,企业可构建多语言评论数据库,支撑全球化市场分析与产品优化。
|
存储 Java 编译器
说一说关于序列化/反序列化中的细节问题
我是小假 期待与你的下一次相遇 ~
344 1

推荐镜像

更多
  • DNS