Gson 的使用和GsonFormat插件的使用
来源:互联网 发布:windows java进程监控 编辑:程序博客网 时间:2024/06/16 11:34
首先介绍下JSON的定义,JSON是JavaScript Object Notation的缩写。
一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。
JSON的结构:
(1) Name/Value Pairs(无序的):类似所熟知的Keyed list、 Hash table、Disctionary和Associative array。在Android平台中同时存在另外一个类 "Bundle",某种程度上具有相似的行为。
(2) Array(有序的):一组有序的数据列表。
一 Json的特性和在数据交互中的地位就不用说了,直接看案例。
首先在android studio中创建assets文件目录,用于存放Json数据文件,android studio 1.3 默认项目文件目录下是没有assets文件夹的,
所以需要我们进行创建,创建方法如下:
创建好assets文件目录以后,在其目录下创建一个Text.json文件。
一: Json的特性和在数据交互中的地位就不用说了,直接看案例。
首先在android studio中创建assets文件目录,用于存放Json数据文件,android studio 1.3 默认项目文件目录下是没有assets文件夹的,
所以需要我们进行创建,创建方法如下:
创建好assets文件目录以后,在其目录下创建一个Text.json文件。
二: json文件实体类的创建
传统的方式是根据json文件手动创建实体类,然后使用gson来解析。但是这种方式需要自己书写代码,如果json文件结构比较复杂,就会导致书写大量的代码,且容易出错。所以我们可以考虑使用gsonformat插件来替我们做这件事,即自动生成javabean文件
- 点击File–>Settings–>Plugins–>然后搜索GsonFormat,点击下载并安装。(mac 下选择android studio-> preferences -> Plugins)
- 安装后提示restart android studio,完成后,可以到plugins下查看之前安装的插件如果显示uninstall就表示安装成功了
- 自定义个javabean(就是新建一个名字最好带bean的无内容的class文件),然后在该文件处点击–>code–>Generate–>GsonFormat(或者直接按alt+s键[Window]),然后将JSON数据复制到该框框内。点击Format可以查看格式化后的效果(跳过)。直接点击OK即可,就已经生成了需要的实体类,非常方便
三: json文件解析gson
有了json文件,有了javabean文件,那么就只需要执行解析操作了
try { InputStreamReader inputStreamReader = new InputStreamReader(getAssets().open("Text.json"), "UTF-8"); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String line; StringBuilder builder = new StringBuilder(); while ((line = bufferedReader.readLine()) != null) { builder.append(line); } bufferedReader.close(); inputStreamReader.close(); parseJsonWithGson(builder.toString());} catch (Exception e) { e.printStackTrace();}
最后贴出完整的步骤:
1. layout文件布局
<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.lisaliu.okhttpdemo.MainActivity"> <LinearLayout android:id="@+id/linear_layout" android:layout_width="match_parent" android:layout_height="wrap_content"> <Button android:id="@+id/parse_json" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="解析json" /> </LinearLayout></android.support.constraint.ConstraintLayout>
2. json文件,见前面描述部分
3. 实体类,见前面描述部分
4. activity中的实现
public class MainActivity extends AppCompatActivity implements View.OnClickListener { TextView responstText; private String string; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button parseJsonButton = (Button) findViewById(R.id.parse_json); responstText = (TextView) findViewById(R.id.response_text); parseJsonButton.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.parse_json: parseJsonRequest(); break; default: break; } } private void parseJsonRequest() { try { InputStreamReader inputStreamReader = new InputStreamReader(getAssets().open("Text.json"), "UTF-8"); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String line; StringBuilder builder = new StringBuilder(); while ((line = bufferedReader.readLine()) != null) { builder.append(line); } bufferedReader.close(); inputStreamReader.close(); parseJsonWithGson(builder.toString()); } catch (Exception e) { e.printStackTrace(); } } private void parseJsonWithGson(String jsonData) { Gson gson = new Gson(); List<App> appList = gson.fromJson(jsonData, new TypeToken<List<App>>() { }.getType()); for (App app : appList) { Toast.makeText(this, "name is " + app.getName(), Toast.LENGTH_SHORT).show(); } }}
- GSON和GsonFormat的使用
- Gson 的使用和GsonFormat插件的使用
- Android Gson使用入门及GsonFormat插件的使用
- 记录GsonFormat插件的使用
- Android Studio GsonFormat插件的使用
- Android studio使用简单的GsonFormat插件
- Android studio插件GsonFormat 的使用
- andorid studio之GsonFormat插件的使用
- Android studio插件GsonFormat 的使用
- Android studio插件GsonFormat的使用
- Android studio插件GsonFormat 的使用
- Android studio插件GsonFormat 的使用
- Mac Android studio插件GsonFormat的使用
- Android:使用GsonFormat插件遇到的坑
- Android Studio快速添加Gson以及GsonFormat的使用
- GsonFormat的使用
- GsonFormat的使用
- GsonFormat的使用
- nyoj 571 整数划分(三)(递归)
- Servlet过滤器
- 简单排序算法总结(C语言版)
- reduceByKeyAndWindow实现基于滑动窗口的热点搜索词实时统计(Java版本)
- JSP 分页
- Gson 的使用和GsonFormat插件的使用
- 百度/谷歌 高级搜索指令
- 数据源
- 开题报告完成,即将开始苦逼程序猿java实习...
- Jave web 中的乱码问题
- Java程序猿跳槽应该学哪些方面的技术
- 在树莓派3的ROS平台上发布sensor_msgs/Imu消息
- 学习之苦也正是学习之甜------知识的本质
- hibernate二级缓存机制