`
zhonglunshun
  • 浏览: 135417 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

gson传递类数据

阅读更多

有时候我们发送广播可能不是一条消息,也可能需要发送一个类封装的对象,这时候可以用到json,

下面通过一个小demo来了解如何简单使用。

随便写一个bean

 

Person实体

public class Person {

    private String name;
    private int age;

    /**
     * @return the name
     */
    public String getName() {
        return name;
    }

    /**
     * @param name the name to set
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * @return the age
     */
    public int getAge() {
        return age;
    }

    /**
     * @param age the age to set
     */
    public void setAge(int age) {
        this.age = age;
    }
    
    @Override
    public String toString()
    {
        return name + ":" +age;
    }
}

 ,第二步是转换成json字符串

 

 

生成Json字符串

Gson gson = new Gson();
List<Person> persons = new ArrayList<Person>();
for (int i = 0; i < 10; i++) {
     Person p = new Person();
     p.setName("name" + i);
     p.setAge(i * 5);
     persons.add(p);
}
String str = gson.toJson(persons);

 z转换后的值就是:[{"name":"name0","age":0},{"name":"name1","age":5},{"name":"name2","age":10},{"name":"name3","age":15},{"name":"name4","age":20},{"name":"name5","age":25},{"name":"name6","age":30},{"name":"name7","age":35},{"name":"name8","age":40},{"name":"name9","age":45}]

 

这样,我们就把json数据转换好了。

 

那么我们从广播接受者那里拿到了这个json字符串如何反序列化成原来的javabean呢?其实也很简单:

一句就搞定:Person person = gson.fromJson(str, Person.class);

str是获取到的json字符串,当然,刚刚传过来的不是一个单独的类,而是一个person集合,那我们就转换成集合吧。

 

List<Person> ps = gson.fromJson(str, new TypeToken<List<Person>>(){}.getType());
for(int i = 0; i < ps.size() ; i++)
{
     Person p = ps.get(i);
     System.out.println(p.toString());
}

 这上面用到了一个typeToken,其实就是gson提供的数据类型转换器,把你的person集合传进去自动转了,可以看出,它能够接受任意类型的转换的。

 

其实json用处很广,只要是用到了不能直接传类而可以传字符串的时候都能用到。

ps:Android新手,欢迎指正。

 

分享到:
评论

相关推荐

    利用HttpClient获取数据并用Gson解析Json数据

    利用HttpClient获取数据并用Gson解析Json数据,内容比较简单,适合新手

    Gson基本使用方法

    Gson的基本使用,特点:a、快速、高效b、代码量少、简洁c、面向对象d、数据传递和解析方便

    gson-2.3.1.jar

    该文档为gson.jar的2.3.1版本,是一个jar包文件。GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库。可以将一个Json字符转成一个Java对象,或者将一个Java转化为Json字符串... d、数据传递和解析方便

    gson-2.2.4完整包.zip

    GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库。可以将一个Json字符转成一个Java对象,或者将一个Java转化为Json字符串。 特点: a、快速、高效 b、代码量少、简洁 c、面向对象 d、数据传递...

    Gson的基本使用

    Gson的基本使用,特点:a、快速、高效b、代码量少、简洁c、面向对象d、数据传递和解析方便

    google gson.jar(Java解析json jar包).rar_Gson解析json_currentql2_googl

    json解析,用于传递打包成json格式的数据,便于分离和传输。

    软件杯项目基于java开发聊天机器人的数据查询系统源码+演示视频.zip

    用户使用软件在正常社交网络环境中, 给机器人传递相应的指令和消息,能够方便地与机器人交谈和查询信息,然后把相应的结果和数据呈现给用户。 技术点 Android:MVVM+ RxJava+Retrofit+GSON Server: SSM ML: ...

    百度地图的定位。城市选择(包括省市县三级搜索)

    kotlin语言搭建的项目 百度地图的定位 选择城市(包括省市县三级搜索),城市选择是本地数据 使用Service调起百度的定位,通过EvenBus... 提供GSON和MMKV的管理类,方便json数据的解析和使用MMKV进行本地数据保存;

    Android中post请求传递json数据给服务端的实例

    在最近的项目中有个需求是这样的: 入参封装成JSON,EXAMPLE: ... * post请求用json的格式传递数据给服务器 * * @param callback */ public static &lt;T&gt; void postShareContent(Context context,

    JSON在Java中的相互转换

    什么是JSON? JSON (JavaScript Object ...数据交换格式,是指客户端和服务器之间通信,传递数据时,数据使用的格式是json JSON在java中的使用 json在java中操作,需要用到 歌提供的gson工具类 public class GsonTest {

    老罗android视频开发源码和ppt经典

    1.5 android使用全局变量传递数据 1.6 android使用剪切板传递数据 1.7 意图传递数据的第一种方式 1.8 android使用静态变量传递数据 1.9 意图返回结果 二、Android常用布局介绍 2.1 android常用布局属性的介绍 2.2 ...

    Android解析JSON数据的方法分析

    JSON作为一种“轻量”的数据结构传递数据,在JS中有广泛的应用 Google公司对JSON的解析提供了gson.jar这个包,它不依赖于其他任何JAR包;自从Android3.0中已经合入了该解析器的功能,但之前的版本是没有的。 ...

    仿网易新闻客户端源码+服务器

    4,使用Gson解析数据 5,使用xutils3请求网络,加载图片 三,通过这个项目,可以学到: 1,如何搭建新闻类App框架 2,如何抽取Fragment基类 3,如何利用框架去请求网络,如何缓存数据,如何加载图片 4,如何解决...

    android学习文档

    4.1 学习json数据格式,编写xml文件转化成实体bean的工具类 35 1.先写一个工具类,把list集合转化成xml格式,注意支持各种类型 35 分析:用dom4j来操作 35 2.涉及的知识 35 五、开发中会用到的技术 36 1、Selector技术 ...

    Android典型技术模块开发详解

    12.4 Gson 12.4.1 简单对象类型转换 12.4.2 数组和集合类型转换 12.5 xStream 12.6 本章小结 第四篇 Android应用开发案例 第13章 Ksoap2 13.1 SOAP协议 13.1.1 请求 13.1.2 响应 13.2 WSDL介绍 13.3 Ksoap2应用——...

    Socket实现的TCP_demo.zip

    Socket的简单应用,这里是群聊的实现,可以...封装了TcpClientThread,其中有个函数接口可以在调用类中实现以进行UI改变,当然Android可以使用Message类进行消息传递。气泡、头像实现的也差不多。数据传送使用的gson

    EloseOnline:使用socket完成的俄罗斯方块,支持多人联机对战

    俄罗斯方块Online集中上机作业实现功能:本地游戏,账号登录注册,双人联机对打,排行榜技术方面...使用了Gson传递数据纯手撸,无抄袭,还有很多不完善的地方服务器是腾讯云1元,不卡我也觉得很神奇jar放在res目录下

    Chat:它是使用Ajax的聊天应用程序。应用程序容器支持Tomcat,数据库支持MySQL。目前正在开发中

    聊天 这是一个使用Ajax的聊天...另外,由于此DTO类实现了JsonSerializer和JsonDeserializer,因此可以使用Gson在Json⇔DTO之间进行转换。客户端JacaScript使用JQuery执行Ajax通信,并在DOM中反映从服务器获取的数据。

    json-Java开发必备jar包(最全)

    简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序。这个字符串看起来有点儿古怪,...

    Ajax实现在线聊天

    使用Ajax、jQuery、Servlet技术实现在线聊天功能,聊天记录会保存到数据库(MySQL)中,并用GSON工具包将集合转换为JSON格式数据传递到前台

Global site tag (gtag.js) - Google Analytics