Json与Gson之简单对象转化和带泛型的List转化

 更新时间:2016年10月2日 16:23  点击:1725
下面我们来看一篇关于Json与Gson之简单对象转化和带泛型的List转化的例子,希望这篇文章能够给各位带来帮助。


Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。在Android Studio中直接引用

compile 'com.google.code.gson:gson:2.2.4'
下面先看一下怎么转化对象:

实体类如下:

public class TestEneity {
 
    /**
     * image : image/mango_cover.jpg
     * content : 火爆进口马来西亚特产大金芒果包邮500G
     * price : 18.9
     * PreferentialPrice : 14.9
     * you : 免邮费
     * number : 23
     */
 
    private String image;
    private String content;
    private String price;
    private String PreferentialPrice;
    private String you;
    private String number;
 
    public String getImage() {
        return image;
    }
 
    public void setImage(String image) {
        this.image = image;
    }
 
    public String getContent() {
        return content;
    }
 
    public void setContent(String content) {
        this.content = content;
    }
 
    public String getPrice() {
        return price;
    }
 
    public void setPrice(String price) {
        this.price = price;
    }
 
    public String getPreferentialPrice() {
        return PreferentialPrice;
    }
 
    public void setPreferentialPrice(String PreferentialPrice) {
        this.PreferentialPrice = PreferentialPrice;
    }
 
    public String getYou() {
        return you;
    }
 
    public void setYou(String you) {
        this.you = you;
    }
 
    public String getNumber() {
        return number;
    }
 
    public void setNumber(String number) {
        this.number = number;
    }
}

使用方式:


TestEneity testEntity=new TestEneity();
testEntity.setImage("image/mango_cover.jpg");
testEntity.setContent("火爆进口马来西亚特产大金芒果包邮500G");
testEntity.setPrice("18.9");
testEntity.setPreferentialPrice("14.9");
testEntity.setYou("免");
testEntity.setNumber("23");
 
System.out.println("----------简单对象之间的转化-------------");
// 简单的bean转为json
Gson gson=new Gson();
String s1 = gson.toJson(testEntity);
System.out.println("简单Bean转化为Json===" + s1);
 
// json转为简单Bean
TestEneity tset = gson.fromJson(s1, TestEneity.class);
System.out.println("Json转为简单Bean===" + tset);

List<TestEneity> testEntityList=new ArrayList<>();
for(int i=0;i<3;i++){
TestEneity testEntity=new TestEneity();
testEntity.setImage("image/mango_cover.jpg");
testEntity.setContent("火爆进口马来西亚特产大金芒果包邮500G");
testEntity.setPrice("18.9");
testEntity.setPreferentialPrice("14.9");
testEntity.setYou("免");
testEntity.setNumber("23");
testEntityList.add(testEntity);
System.out.println("----------带泛型的List之间的转化-------------");
// 带泛型的list转化为json
Gson gson=new Gson();
String s2 = gson.toJson(testEntityList);
System.out.println("带泛型的list转化为json==" + s2);
 
// json转为带泛型的list
List<TestEneity> retList = gson.fromJson(s2,
new TypeToken<List<TestEneity>>() {
}.getType());
for (TestEneity stu : retList) {
System.out.println(stu);
}
}

下面我们来看一篇关于没有配置NDK的Path环境变量而运行ndk-build命令时报错问题原因分析与此问题的解决办法,具体的如下。

如果在PATH环境变量下配置NDK的根目录,那么将有可能会报'ndk-build'isnotrecognizedasaninternalorexternalcommand,operableprogramorbatchfile.的错误.
如下:

'ndk-build'isnotrecognizedasaninternalorexternalcommand,operableprogramorbatchfile.

解决办法

这时,只需要将NDK的根目录路径拷贝到path中即可.

下面来看一篇关于Android.mk文件写法及错误提示原因分析,这个看是写错了还是逻辑错误吧,具体的来参考这篇教程。

//根据文档中的提示创建的Android.mk中的文本

 代码如下 复制代码

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := crypt //这里是库名
LOCAL_SRC_FILES := crypt.c //这里是库源码文件名

include $(BUILD_SHARED_LIBRARY)

当我写错了这个android.mk文件的时候报了一个"LOCAL_MODULE_FILENAME must not contain a file extension"的错误:

错误提示如下图所示:

[Jni]Android.mk文件写法及错误提示

[Jni]Android.mk文件写法及错误提示
安卓Android 6.0新特性有哪些呢,对于做开发的多少要了解一些关于不同版本之间的一些特性了,下面我们来看看。

全新的Android M相比目前的Android Lollipop(5.0)有六项重大的改进:
1.App Permissions(软件权限管理):在Android M里,应用许可提示可以自定义了。它允许对应用的权限进行高度管理,比如应用能否使用位置、相机、麦克风、通讯录等,这些都可以开放给开发者和用户。
2.Chrome Custom Tabs(网页体验提升):新版的M对于Chrome的网页浏览体验进行了提升,它对登陆网站、存储密码、自动补全资料、多线程浏览网页的安全性进行了一些列的优化。
3.App Links(APP关联):Android M加强了软件间的关联,谷歌在现场展示了 一个例子,比如你的手机邮箱里收到一封邮件,内文里有以个Twitter链接,用户点击该链接可以直接跳转到Twitter应用,而不再是网页。
4.Android Pay(安卓支付):终于来了!Android支付统一标准。新的M系统中集成了Android Pay。其特性在于简洁、安全、可选性。Android Pay是一个开放性平台,使用户就可以选择谷歌的服务或者使用银行的APP来使用它,Android Pay支持4.4以后系统设备,在发布会上谷歌宣布Android Pay已经与美国三大运营商700多家商店达成合作。支付功能可以使用指纹来进行支付,这意味着今年基于安卓M的Nexus产品肯定会有指纹识别了。
5.Fingerprint Support(指纹支持):Android M增加了对指纹的识别API,谷歌开始在M里自建官方的指纹识别支持,力求Android统一方案,目前所有的Android产品指纹识别都是使用非谷歌认证的技术和接口。
6.Power & Change(电量管理 ):新的电源管理模块将更为智能,比如Android平板长时间不移动时,M系统将自动关闭一些App。同时Android M设备将支持USB Type-C接口,新的电源管理将更好的支持Type-C接口。
 
其它:
1. 支持4K显示
虽然目前搭载Android 6.0的手机如Nexus 6P、5X并未搭载原生4K分辨率屏幕,但实际上Android 6.0本身已经支持4K显示,会通过一定优化形式使4K内容更加清晰。这一功能已经作为一项API向开发人员开放,旨在优化Android 6.0的4K显示性能。相信在之后,也会有越多越多的Android 6.0手机配备原生4K分辨率屏幕。
2. 启动验证
Android 6.0在开机时会自动运行验证代码,检测设备和操作系统是否被篡改,这是一项新增的安全功能。
3. 直接分享
谷歌在Android 6.0中引入了一个新的直接分享功能,能够快速分享第三方应用程序中的内容,开发人员可充分利用它实现更便捷的应用体验。

[!--infotagslink--]

相关文章

  • java8如何用Stream查List对象某属性是否有重复

    这篇文章主要介绍了java8如何用Stream查List对象某属性是否有重复的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-11
  • php简单数据操作的实例

    最基础的对数据的增加删除修改操作实例,菜鸟们收了吧...2013-09-26
  • R语言 如何删除指定变量或对象

    这篇文章主要介绍了R语言删除指定变量或对象的操作方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
  • 如何在Spring WebFlux的任何地方获取Request对象

    这篇文章主要介绍了如何在Spring WebFlux的任何地方获取Request对象,帮助大家更好的理解和使用springboot框架,感兴趣的朋友可以了解下...2021-01-26
  • JavaScript预解析,对象详解

    这篇文章主要介绍了JavaScript预解析,对象的的相关资料,小编觉得这篇文章写的还不错,需要的朋友可以参考下,希望能够给你带来帮助...2021-11-10
  • 牛叉的Jquery――Jquery与DOM对象的互相转换及DOM的三种操作

    只有jQuery对象才能调用jQuery类库的各种函数,同样有些dom对象的属性和方法在jQuery上也是无法调用的,不过基本上jQuery类库提供的函数包含了所有的dom操作。这就需要我们知道如何将jQuery对象和DOM的相互转换的方法。1...2015-10-30
  • js如何打印object对象

    js调试中经常会碰到输出的内容是对象而无法打印的时候,光靠alert只能打印出object标示,却不能打印出来里面的内容,甚是不方便,于是各方面整理总结了如下一个函数,能够将数组或者对象这类的结果一一打印出来,具体代码如下: fu...2015-10-21
  • javascript self对象使用详解

    这篇文章主要介绍了javascript self对象使用详解的相关资料,需要的朋友可以参考下...2016-10-20
  • 替换json对象中的key最佳方案

    本文给大家介绍如何替换json对象中的key,通过实例代码给大家介绍key的替换方法,代码也很简单,需要的朋友参考下吧...2021-06-02
  • ActiveX部件不能创建对象:dm.dmsoft代码:800A01AD

    vbs调用插件报:ActiveX部件不能创建对象,代码:800A01AD,一般是因为病毒导致dll文件丢失或者64系统问题导致,需要的朋友可以参考下...2020-06-30
  • 理解JavaScript事件对象

    这篇文章主要为大家介绍了JavaScript事件对象,了解JavaScript事件...2016-01-26
  • JS实现简单面向对象的颜色选择器实例

    这篇文章主要介绍了JS实现简单面向对象的颜色选择器,以完整实例形式分析了JavaScript基于面向对象实现颜色选择器的具体步骤与实现技巧,需要的朋友可以参考下...2016-04-23
  • 解决SpringCloud Feign传对象参数调用失败的问题

    这篇文章主要介绍了解决SpringCloud Feign传对象参数调用失败的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-06-24
  • 关于MySQL外键的简单学习教程

    在MySQL中,InnoDB引擎类型的表支持了外键约束。 外键的使用条件: 1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持); 2.外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时...2015-11-24
  • 对象题目的一个坑 理解Javascript对象

    这篇文章主要介绍了Javascript对象,特别为大家分享了对象题目的一个坑,提供了解题思路,感兴趣的小伙伴们可以参考一下...2015-12-24
  • Xml中使用foreach遍历对象实现代码

    这篇文章主要介绍了Xml中使用foreach遍历对象实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-12-04
  • HTML5 FileReader对象的具体使用方法

    这篇文章主要介绍了HTML5 FileReader对象的具体使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-30
  • vue - props 声明数组和对象操作

    这篇文章主要介绍了vue - props 声明数组和对象操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-30
  • Bootstrap媒体对象的实现

    在web页面中,图片居左,内容居右排列,是非常常见的效果,它也就是媒体对象,它是一种抽象的样式,可以用来构建不同类型的组件。本文给大家介绍Bootstrap媒体对象的实现,感兴趣的朋友一起学习吧...2016-05-04
  • javascript创建对象的几种模式介绍

    下面小编就为大家带来一篇javascript创建对象的几种模式介绍。小编觉得挺不错的,现在分享给大家,也给大家做个参考...2016-05-09