开源组件:Gson库的一般使用方法

简介:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
//      先导入gson的jar包
//      gson的一般使用方法
//      class的属性名必须与json字符串中的key大小写完全一致
         
     //解析JSONArray
     private  void  parseJSONArray()
     {
         String jsonArr =  "[{'key1':'value1', 'key2':'value2'}, {'key1':'value1', 'key2':'value2'}]" ;
         Gson gson =  new  Gson();
         java.lang.reflect.Type type =  new  com.google.gson.reflect.TypeToken<List<JsonData>>()
         {
         }.getType();
         List<JsonData> fromJson = gson.fromJson(jsonArr, type);
         mTextView.setText(fromJson.toString());
     }
     //解析JSONObject
     private  void  parseJSONObject()
     {
         String jsonObj =  "{'key1':'value1', 'key2':'value2'}" ;
         Gson gson =  new  Gson();
         JsonData jsonData = gson.fromJson(jsonObj, JsonData. class );
         mTextView.setText(jsonData.toString());
     }
     class  JsonData //属性必须与json里面的key一致
     {
         String key1;
         String key2;
         @Override
         public  String toString()
         {
             return  "JSON1 [key1="  + key1 +  ", key2="  + key2 +  "]" ;
         }
     }




注:

1.参数类型不能是ArrayList,而是List

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public  class  TestJson
{
     public  int  Id;
     public  String Name;
     
     public  ParamJson EstateParam;
     public  List<String> Banners; //此处参数类型不能是ArrayList,而是List 
}
 
 
public  class  ParamJson
{
     public  int  Id;
     public  String Name;
     
     public  List<String> ListData;
}


解析只要一句代码即可:

1
TestJson mJson = ((TestJson)  new  Gson().fromJson(str, TestJson. class ));





本文转自 glblong 51CTO博客,原文链接:http://blog.51cto.com/glblong/1230424,如需转载请自行联系原作者

目录
相关文章
|
存储 调度 iOS开发
MacOS环境-手写操作系统-32-进程挂起和恢复
MacOS环境-手写操作系统-32-进程挂起和恢复
106 0
|
移动开发 前端开发 JavaScript
扩展应用功能的无限可能——UniApp生态系统中的插件探索(二)
扩展应用功能的无限可能——UniApp生态系统中的插件探索(二)
|
敏捷开发 JSON 网络协议
阿里云云效产品使用合集之如何自定义拉取资源的命令脚本
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
Linux 数据安全/隐私保护
Linux中的新建用户、切换用户
Linux中的新建用户、切换用户
211 0
|
前端开发 小程序 开发者
微信开发者工具创建的插件报错-Unhandled promise rejection TypeError: WebAssembly Instantiation...
微信开发者工具创建的插件报错-Unhandled promise rejection TypeError: WebAssembly Instantiation...
142 0
|
传感器
一文教你彻底学会IIC协议
一文教你彻底学会IIC协议
990 1
|
存储 监控 前端开发
Centos7 部署 Zabbix 5.4 高可用集群
Centos7 部署 Zabbix 5.4 高可用集群
1031 0
Centos7 部署 Zabbix 5.4 高可用集群
|
区块链
dapp互助公排智能合约系统开发指南与规则
智能合约作为区块链技术应用最广泛的场景之一
|
存储 前端开发 API
使用大型语言模型进行自主视觉信息搜索
在调整大型语言模型(LLM)以适应任务的多模态输入方面取得了很大进展,包括图像标题,可视问答 (VQA)和开放词汇识别.尽管取得了这些成就,但当前最先进的视觉语言模型(VLM)在视觉信息搜索数据集上表现不佳,例如信息搜索和OK-VQA,需要外部知识才能回答问题。
259 0
|
设计模式 Java 关系型数据库
把书读薄 | 《设计模式之美》设计模式与范式(结构型-适配器模式)(下)
本文对应设计模式与范式:结构型(51),适配器模式 (Adapter Pattern)。 了解定义,适用场景、类适配器和对象适配器就差不多了~Tips:二手知识加工难免有所纰漏,感兴趣有时间的可自行查阅原文,谢谢。
196 0