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"}]}

 

相关文章
20天前
|
存储 Java API
Android 浅度解析:mk预置AAR、SO文件、APP包和签名
Android 浅度解析:mk预置AAR、SO文件、APP包和签名
77 0
5天前
|
Java Android开发
Android12 双击power键启动相机源码解析
Android12 双击power键启动相机源码解析
14 0
20天前
|
安全 Java 定位技术
Android 浅度解析:AIDL & Binder (1)
Android 浅度解析:AIDL & Binder (1)
40 0
4天前
|
XML 存储 JSON
c#XML、JSON的序列化和反序列化,看完你就懂了
c#XML、JSON的序列化和反序列化,看完你就懂了
9 0
5天前
|
JSON Java Linux
【探索Linux】P.30(序列化和反序列化 | JSON序列化库 [ C++ ] )
【探索Linux】P.30(序列化和反序列化 | JSON序列化库 [ C++ ] )
20 2
13天前
|
JSON 安全 Swift
【Swift开发专栏】Swift中的JSON解析与处理
【4月更文挑战第30天】本文介绍了Swift中的JSON解析与处理。首先,讲解了JSON的基础,包括其键值对格式和在Swift中的解析与序列化方法。接着,展示了如何使用`Codable`协议简化JSON操作,以及处理复杂结构的示例。通过这些内容,读者能掌握在Swift中高效地处理JSON数据的方法。
13 0
13天前
|
前端开发 测试技术 数据处理
安卓开发中的MVP架构模式深度解析
【4月更文挑战第30天】在移动应用开发领域,模型-视图-呈现器(Model-View-Presenter, MVP)是一种广泛采用的架构模式。它旨在通过解耦组件间的直接交互来提高代码的可维护性和可测试性。本文将深入探讨MVP在安卓开发中的应用,揭示其如何促进代码的模块化,提升用户界面的响应性,并简化单元测试过程。我们将从理论概念出发,逐步过渡到实践案例,为读者提供一套行之有效的MVP实施策略。
22 1
13天前
|
分布式计算 DataWorks 关系型数据库
DataWorks产品使用合集之在DataWorks中,使用JSON解析函数将MySQL表中的字段解析成多个字段将这些字段写入到ODPS(MaxCompute)中如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
27 3
17天前
|
JSON 编译器 Go
Golang深入浅出之-结构体标签(Tags):JSON序列化与反射应用
【4月更文挑战第22天】Go语言结构体标签用于添加元信息,常用于JSON序列化和ORM框架。本文聚焦JSON序列化和反射应用,讨论了如何使用`json`标签处理敏感字段、实现`omitempty`、自定义字段名和嵌套结构体。同时,通过反射访问标签信息,但应注意反射可能带来的性能问题。正确使用结构体标签能提升代码质量和安全性。
16 0
20天前
|
存储 物联网 数据库
Android 11 以上 SettingsProvider DatabaseHelper 解析
Android 11 以上 SettingsProvider DatabaseHelper 解析
27 0

推荐镜像

更多