android的json解析

转http://blog.csdn.net/qxs965266509/article/details/42774691

Google Gson的使用方法,实现Json结构的相互转换

分类: android Json2015-01-16 12:03 884人阅读 评论(0) 收藏 举报

在Java开发中,有时需要保存一个数据结构成字符串,可能你会考虑用Json,但是当Json字符串转换成Java对象时,转换成的是JsonObject,并不是你想要的Class类型的对象,操作起来就很不是愉悦,下面说的就可以解决了这种问题。

首先,需要把Google的Gson的Jar包导入到项目中,这个导入包的简单步骤就不展示了,Gson的下载链接:http://download.csdn.net/detail/qxs965266509/8367275

现在,我先自定义一个Class类

[java] view plaincopy

  1. public class Student {
  2. public int id;
  3. public String nickName;
  4. public int age;
  5. public ArrayList<String> books;
  6. public HashMap<String, String> booksMap;
  7. }

案例一,案例二,案例三都是把Java的Class对象使用Gson转换成Json的字符串

案例一:

仅包含基本数据类型的数据结构

[java] view plaincopy

  1. Gson gson = new Gson();
  2. Student student = new Student();
  3. student.id = 1;
  4. student.nickName = "乔晓松";
  5. student.age = 22;
  6. student.email = "[email protected]";
  7. Log.e("MainActivity", gson.toJson(student));

输出结果是 :

[java] view plaincopy

  1. {"email":"[email protected]","nickName":"乔晓松","id":1,"age":22}

案例二:

除了基本数据类型还包含了List集合

[java] view plaincopy

  1. Gson gson = new Gson();
  2. Student student = new Student();
  3. student.id = 1;
  4. student.nickName = "乔晓松";
  5. student.age = 22;
  6. student.email = "[email protected]";
  7. ArrayList<String> books = new ArrayList<String>();
  8. books.add("数学");
  9. books.add("语文");
  10. books.add("英语");
  11. books.add("物理");
  12. books.add("化学");
  13. books.add("生物");
  14. student.books = books;
  15. Log.e("MainActivity", gson.toJson(student));

输出结果是 :

[html] view plaincopy

  1. {"books":["数学","语文","英语","物理","化学","生物"],"email":"[email protected]","nickName":"乔晓松","id":1,"age":22}

案例三:

除了基本数据类型还包含了List和Map集合

[java] view plaincopy

  1. Gson gson = new Gson();
  2. Student student = new Student();
  3. student.id = 1;
  4. student.nickName = "乔晓松";
  5. student.age = 22;
  6. student.email = "[email protected]";
  7. ArrayList<String> books = new ArrayList<String>();
  8. books.add("数学");
  9. books.add("语文");
  10. books.add("英语");
  11. books.add("物理");
  12. books.add("化学");
  13. books.add("生物");
  14. student.books = books;
  15. HashMap<String, String> booksMap = new HashMap<String, String>();
  16. booksMap.put("1", "数学");
  17. booksMap.put("2", "语文");
  18. booksMap.put("3", "英语");
  19. booksMap.put("4", "物理");
  20. booksMap.put("5", "化学");
  21. booksMap.put("6", "生物");
  22. student.booksMap = booksMap;
  23. Log.e("MainActivity", gson.toJson(student));

输出结果是 :

[java] view plaincopy

  1. {"books":["数学","语文","英语","物理","化学","生物"],"booksMap":{"3":"英语","2":"语文","1":"数学","6":"生物","5":"化学","4":"物理"},"email":"[email protected]","nickName":"乔晓松","id":1,"age":22}

案例四:
把案例三输出的字符串使用Gson转换成Student对象

[java] view plaincopy

  1. Gson gson = new Gson();
  2. Student student = new Student();
  3. student.id = 1;
  4. student.nickName = "乔晓松";
  5. student.age = 22;
  6. student.email = "[email protected]";
  7. ArrayList<String> books = new ArrayList<String>();
  8. books.add("数学");
  9. books.add("语文");
  10. books.add("英语");
  11. books.add("物理");
  12. books.add("化学");
  13. books.add("生物");
  14. student.books = books;
  15. HashMap<String, String> booksMap = new HashMap<String, String>();
  16. booksMap.put("1", "数学");
  17. booksMap.put("2", "语文");
  18. booksMap.put("3", "英语");
  19. booksMap.put("4", "物理");
  20. booksMap.put("5", "化学");
  21. booksMap.put("6", "生物");
  22. student.booksMap = booksMap;
  23. String result = gson.toJson(student);
  24. Student studentG = gson.fromJson(result, Student.class);
  25. Log.e("MainActivity", "id:" + studentG.id);
  26. Log.e("MainActivity", "nickName:" + studentG.nickName);
  27. Log.e("MainActivity", "age:" + studentG.age);
  28. Log.e("MainActivity", "email:" + studentG.email);
  29. Log.e("MainActivity", "books size:" + studentG.books.size());
  30. Log.e("MainActivity", "booksMap size:" + studentG.booksMap.size());

需要注意的是:

1、因为json转为类时候有的数据有或没有,因此最好是javabean的类,类的子类都可以设为共有的。

2、当从服务器得到的json数据非常复杂的时候,可以用hijson工具解析出类的架构,然后来构建类。

时间: 2024-08-06 03:45:59

android的json解析的相关文章

Android 之json解析2

JSON(JavaScript Object Notation) 定义:字符串 键值对 解析方法有JSON,谷歌GSON,阿里巴巴FastJSON 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性. 业内主流技术为其提供了完整的解决方案(有点类似于正则表达式,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换. JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. Json建构于两种结构: 1.“名称/值”对的集合(A collection of name

Android项目--Json解析

在过去的一段时间里,我希望做一个天气的应用,但是由于老版的天气接口已经不能用了.只能更新到2014年3月4日. 不过有些东西,哪来学习一下,也是可以的. 比如:http://m.weather.com.cn/data/101050101.html { "weatherinfo": { "city": "哈尔滨", "city_en": "haerbin", "date_y": "

Android之JSON解析

做个Android网络编程的同学一定对于JSON解析一点都不陌生,因为现在我们通过手机向服务器请求资源,服务器给我们返回的数据资源一般都是以JSON格式返回,当然还有一些通过XML格式返回,相对JSON格式,XML格式的数据在处理时相对比较繁琐,并且Android为我们提供了两个解析JSON对象的类:JSONObject与JSONArray这两个对象可以很好的满足我们的需求,JSONArray对象可以以数组的形式将数据返回到手机,JSONObject对象则可以以对象的形式将数据为我们封装好返回,

浅谈Android项目----JSON解析(4种解析技术详解)

json简介 1.概念:json全称是javaScript object Notation,是一种并轻量级的数据交换格式. 2.特点: 1.本质就是具有特定格式的字符串 2.json完全独立于编程语言 3.json比xml数据传输的有效性要高出很多 Android系统也原生的提供了JSON解析的API,但是它的速度很慢,而且没有提供简介方便的接口来提高开发者的效率和降低出错的可能.因此,通常情况下,我们都会选择其他优秀的JSON解析实现,用以替代系统的API,目前JSON解析的开源实现主要包括一

Android平台json解析(FastJson Gson 大比拼)

前言: 最近为了统一项目中使用的框架,发现项目中用到了两种json解析框架,他们就是当今非常主流的json解析框架:google的Gson 和阿里巴巴的FastJson,为了废除其中一个所以来个性能和使用的大比拼. FastJson 当前使用版本 fastjson-1.2.11.jar 下载地址http://repo1.maven.org/maven2/com/alibaba/fastjson/1.2.11/ 对象转化成json: /** * 对象转化为json fastjson 使用方式 *

android复杂json解析

JSON建构有两种结构:对象和数组 json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组2种结构,通过这两种结构可以表示各种复杂的结构. 以下是项目中的一段json格式,也并不算很复杂,贴出解析方式和思路: { "result":true,"msgType":3,"count":16,"batchId":"hb20140711", "companyFullName&q

android通用JSON解析

ackage cn.com.pcgroup.<a href="http://lib.csdn.net/base/15" class="replace_word" title="Android知识库" target="_blank" style="color:#df3434; font-weight:bold;">android</a>.browser.module.onlinepro

Android之JSON格式数据解析

查看原文:http://blog.csdn.net/hantangsongming/article/details/42234293 JSON:JavaScript 对象表示法(JavaScript Object Notation).独立于语言和平台,比 XML 更小.更快,更易解析.如今JSON数据已经成为了互联网中大多数数据的传递方式,所以必须要熟练掌握. Android平台自带了JSON解析的相关API,可以将文件.输入流中的数据转化为JSON对象,然后从对象中获取JSON保存的数据内容.

android json解析及简单例子

JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. – Json.org JSON Vs XML 1.JSON和XML的数据可读性基本相同 2.JSON和XML同样拥有丰富的解析手段 3.JSON相对于XML来讲,数据的体积小 4.JSON与JavaScript的交互更加方便