如果你是在安卓开发中并且使用android studio,要使用json来作为数据传输的格式,那么下面是我的一些经验。
一开始我在android studio中导入那6个包,那6个包找了非常久,因为放在android studio项目的lib目录下之后,不是编译错就是运行错。

编译错通常是这两种情况:

1.代码那里爆红,说明你导入包都还没有成功
2.1解决了,但是和andorid studio自带的json包冲突,也就是类或者函数什么的重复,也就是duplicate class。

解决2的时候,我的错误做法
我按照编译的那个错误日志删除6个包中的那些重复包,直到编译通过,但是却又发生了运行错,又说类找不到(真晕,前面说重复,删了,又说类找不到)class not found。
解决2的办法
删除那6个包,下载比较新版本的那6个包,并导入,就不会冲突。
下面提供两种方法得到较新版本的6个包:
方法一,下面是我上传的,只需要很少积分,1个就可以了。
json6个包下载地址
方法二,由于json的那6个包还算主流,可以在andorid studio中直接下载,很方便。操作如下:


在这里你可以简略搜索,输入关键词的就可以了,如下图

然后依次下载那6个包的新版之后,在这里下载操作的好处就是android studio会自动帮你导入,你只管在代码中使用就行了。一般下载的时候选择的版本选择第一个就行了,比如上面排在最前面的2.4.其他的也类似,选择第一个,再比如:

解决了2之后
运行还是错。但是错误不一样了,说classdefnotfound。

说了这么多,现在才是正文,上面只是踩的坑,烦死了。正文开始:
解决方法:
1.删除你那6个包
2.在android studio中下载gson包,怎么下载,上面的图片已经说过了,这里只贴一个图片。

然后使用gson来完成json数据格式的解析,那么由于不是json的那6个包,那么自然和json6个包进行数据格式解析的方法不同。
比如json6个包中的是fromObject(String jsonstring)方法。

JSONObject jsonObject=JSONObject.fromObject(String jsonstring);

但是gson不一样,其简单使用方法如下:
下面使用类作为数据载体,用gson把一个javabean类转换成json数据,然后传输。

//这个是一个类Javabean,下面代码有这个类是什么。DiscoverAllTables discoverAllTables = new DiscoverAllTables();discoverAllTables.setAuthor(author);discoverAllTables.setComment(comment);discoverAllTables.setContent(content);discoverAllTables.setMark(mark);discoverAllTables.setTitle(title);discoverAllTables.setTablename(tablename);//Gson派上用场。Gson gson = new Gson();//下面化成json格式数据.String jsonstring = gson.toJson(discoverAllTables);

下面是那个类。


public class DiscoverAllTables {private int id;String author,title,mark,content,comment,tablename;public String getTablename() {return tablename;}public void setTablename(String tablename) {this.tablename = tablename;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getMark() {return mark;}public void setMark(String mark) {this.mark = mark;}public String getContent() {return content;}public void setContent(String content) {this.content = content;}public String getComment() {return comment;}public void setComment(String comment) {this.comment = comment;}
}

假设另外一个端收到了这个jsonstring,如何反向解析呢?
这里也只介绍Gson的使用方法,而不是用那6个包的使用方法。

//由json格式的数据jsonstring对应上面的反向解析成类。JSONObject jsonObject = new JSONObject(jsonstring);Gson gson = new Gson();DiscoverAllTables discoverAllTables=gson.fromJson(jsonObject.toString(),DiscoverAllTables.class);//有了这个对象,你就可以访问数据了,比如:String xxx=discoverAllTables.getXXX();

此外还有一个你经常用到的,就是jsonstring是一个数组类型转化而来的,比如说是一堆名字,也就是字符串数组,我们一般使用ArrayList而不是String[]。
下面是正向:

List<String> list=new Arraylist<String>();
list.add("bob");
list.add("mike");
Gson gson = new Gson();
String jsonstring = gson.toJson(list);

下面是逆向解析

JSONArray jsonArray = new JSONArray(jsonstring);Gson gson = new Gson();List<String> list=new Arraylist<String>();list = gson.fromJson(jsonArray.toString(), new TypeToken<ArrayList<String>>() {}.getType());//然后你就可以操作list了。

上面就是常见的两种利用Gson解析和生成json数据的方式,一个是数组(反向接收的时候用JSONArray,如上代码),一个是类(反向接收的时候JSONObject,如上上上代码)。如果对格式要求不高,比如数据格式没有什么复杂嵌套的话,基本上能解决你的问题了。

总结,我android studio用Gson包,不用那6个包,而Gson主要用好toJson(),fromJson()两个方法就可以。服务器端开发可以用那6个包,至于是不是最新版的包都没有问题,都不会有冲突什么的错误,可以正常使用。
如有错误,欢迎交流。

Android Studio安卓开发中使用json来作为网络数据传输格式相关推荐

  1. Android studio 安卓开发常见问题(个人笔记系列)

    Android studio安卓开发常见问题 注:个人笔记就是没有大纲.没有目录.没有结构,纯属本人笔记用. 正文 1.建议为控件绑定监听器而不是用XML的onClick属性来实现一个方法. 2.匿名 ...

  2. 学习笔记 | Android Studio安卓开发入门经验总结 干货

    前言 最近完成了移动编程课程的学习,加上其它安卓开发项目的经历,感觉收获颇为丰富.故在此总结整理安卓开发中比较常见的一些问题,技巧和指南. 0.目录 文章目录 前言 0.目录 1.开发环境 2. 项目 ...

  3. java android studio 安卓开发 - 使用java发送邮件

    01 先导包 https://javaee.github.io/javamail/#Samples 里面找到 for android的连接 但是后面run时,报错以下内容 javax.mail.Ses ...

  4. 【Android studio安卓开发】如何连接模拟器?以逍遥模拟器和夜神模拟器为例。

    一.Android studio如何连接逍遥模拟器? 对于逍遥模拟器的连接,比较简单,直接启动逍遥模拟器,AS可以检测到模拟器已启动,直接点击选择运行即可. 我这里逍遥模拟器显示的是一加手机: 但是! ...

  5. Android Studio安卓开发-类微信UI设计

    新建一个安卓空项目,语言采用Java,基于Android SDK11.0实现,使用虚拟设备Pixel 5 API 30. 实现顶部微信栏-layout_top.xml. 创建时选择LinearLayo ...

  6. Android Studio安卓开发-RecycleView新闻栏设计

    RecycleView新闻栏设计 绪言 1 修改Item_dome.xml文件 2 创建适配器Adapter3 2.1 编写构造方法传入数据 2.2 创建内部类,初始化Item 2.3 将数据和控件绑 ...

  7. Android Studio App开发中使用录音机、MediaRecorder录制音频和MediaPlayer播放音频讲解及实战(附源码)

    运行有问题或需要源码请点赞关注收藏后评论区留言~~~ 一.使用录音机录制音频 手机有自带的系统相机,也有自带的系统录音机,只要在调用startActivityForResult之前指定该动作,就会自动 ...

  8. android 手动回收对象,Android Studio Studio回收列表中的JSON对象

    我想在recyclerview中显示一些JSON对象,并且希望它们在日期之后排序,我该如何实现?下面是下载从JSON URL的数据的方法:Android Studio Studio回收列表中的JSON ...

  9. Android Studio TV开发教程(十五) Android N及更早版本中的建议

    Android Studio TV开发教程 (转自Android官网https://developer.android.com/training/tv/start) 文章源自:光谷佳武 https:/ ...

最新文章

  1. WEB程序代码优化入手的几方面
  2. git clone early EOF解决方法
  3. WinAPI: GetForegroundWindow - 获取前台窗口的句柄
  4. WEB 实时推送技术总结
  5. JQuery中的.attr()与.removeAttr()
  6. ajax里怎么添加跳转地址,Ajax中window.location.href无法跳转的解决办法
  7. 完全卸载gitlab
  8. c#异常类的闰年判断
  9. 线段中点到另一直线距离最短_圆弧与线段的最短距离
  10. ssh配置config文件
  11. 中国气象站点数据、降雨量气温蒸散发栅格数据集
  12. C# 导出Excel并插入二维码图片
  13. 工控网络安全学习路线
  14. 两个程序员老友的会面
  15. linux系统 ubuntu 使用GWE图形用户界面调整显卡风扇转速曲线
  16. 【面试题 - mysql】进阶篇 - 索引
  17. 一起赚美元⑥ | 创立Discourse开源论坛软件每月赚取12万美元的故事
  18. [51nod13831048]整数分解为2的幂
  19. java模拟三人爬山_java笔记——模拟多人徒步爬山例子
  20. Yii2 中添加全局函数

热门文章

  1. 数字图象处理之二维码图像提取算法(九)
  2. 到底什么是生成式对抗网络GAN?
  3. 在ubuntu系统中使用dpkg命令安装后缀名为deb的软件包
  4. 雍培:电力遇上大数据,使我的科研如鱼得水 | 提升之路系列(九)
  5. 用哪种语言写的应用漏洞最严重?六大主流语言代码漏洞分析报告出炉
  6. 深度分享 | 世界顶级语音识别科学家黄学东博士CCL 2018主旨报告(附PPT)
  7. 独家 | 一文解析统计学在机器学习中的重要性(附学习资源)
  8. ICLR2018 | 深度学习顶会见闻,干货资源都在这里(附源码、论文链接)
  9. 数据蒋堂 | JOIN提速 - 外键指针化
  10. 福利 | 16场精选活动干货、精华笔记、课件分享:数据派独家讲座干货大合集