Gson可以实现对象与json字符串之间的转化,以下是在Android中的示例代码。

Gson主页:https://code.google.com/p/google-gson/

  1. public class GsonActivity extends Activity {
  2. Button saveButton;
  3. Button loadButton;
  4.  
  5. @Override
  6. protected void onCreate(Bundle savedInstanceState) {
  7. super.onCreate(savedInstanceState);
  8. setContentView(R.layout.gsonlayout);
  9. initControls();
  10. }
  11.  
  12. protected void initControls(){
  13. saveButton = (Button) findViewById(R.id.btSave);
  14. loadButton = (Button) findViewById(R.id.btGsonLoad);
  15.  
  16. saveButton.setOnClickListener(new OnClickListener() {
  17.  
  18. @Override
  19. public void onClick(View v) {
  20. List<StudentInfo> studentInfos = new LinkedList<StudentInfo>() ;
  21. StudentInfo s1 = new StudentInfo();
  22. s1.setId(1);
  23. s1.setName("张三");
  24. s1.setAddress("武汉市");
  25. s1.setPhone("12345671");
  26. studentInfos.add(s1);
  27.  
  28. StudentInfo s2 = new StudentInfo();
  29. s2.setId(2);
  30. s2.setName("李四");
  31. s2.setAddress("华工");
  32. s2.setPhone("12345672");
  33. studentInfos.add(s2);
  34.  
  35. Gson gson = new Gson();
  36. String json = gson.toJson(studentInfos);
  37. try {
  38. FileOutputStream fs = openFileOutput("gsonconfig.xml", MODE_PRIVATE);
  39. fs.write(json.getBytes());
  40. fs.close();
  41. Toast.makeText(GsonActivity.this, json, Toast.LENGTH_SHORT).show();
  42. } catch (Exception e) {
  43. Toast.makeText(GsonActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
  44. e.printStackTrace();
  45. }
  46. }
  47. });
  48.  
  49. loadButton.setOnClickListener(new OnClickListener() {
  50.  
  51. @Override
  52. public void onClick(View v) {
  53. List<StudentInfo> studentInfos = new LinkedList<StudentInfo>();
  54. String json = "";
  55.  
  56. try {
  57. FileInputStream fileInputStream = openFileInput("gsonconfig.xml");
  58. InputStreamReader inputStreamReader =new InputStreamReader(fileInputStream);
  59. BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
  60.  
  61. json = bufferedReader.readLine();
  62. bufferedReader.close();
  63.  
  64. Gson gson = new Gson();
  65. studentInfos = gson.fromJson(json, new TypeToken<List<StudentInfo>>() {
  66. }.getType());
  67. for (StudentInfo studentInfo : studentInfos) {
  68. Toast.makeText(GsonActivity.this, studentInfo.toString(), Toast.LENGTH_SHORT).show();
  69. }
  70. } catch (Exception e) {
  71. e.printStackTrace();
  72. }
  73. }
  74. });
  75. }
  76. }

更多例子可以参见http://blog.csdn.net/lk_blog/article/details/7685169

Gson进行json字符串和对象之间的转化的更多相关文章

  1. Google Gson实现JSON字符串和对象之间相互转换

    User实体类 package com.test.json; /** * User 实体类 */ public class User { private String name; private St ...

  2. C# .net中json字符串和对象之间的转化方法

    http://blog.csdn.net/xuexiaodong009/article/details/46998069 json作为作为一种最常用的数据,应用很广泛,在.net中如何把一个对象转化为 ...

  3. 速战速决 (6) - PHP: 获取 http 请求数据, 获取 get 数据 和 post 数据, json 字符串与对象之间的相互转换

    [源码下载] 速战速决 (6) - PHP: 获取 http 请求数据, 获取 get 数据 和 post 数据, json 字符串与对象之间的相互转换 作者:webabcd 介绍速战速决 之 PHP ...

  4. JSON字符串和对象之间的转换

    JSON(JavaScript Object Notation) 是JavaScript编程语言的一个子集.正因JSON是JavaScript的一个子集,所以它可清晰的运用于此语言中. eval函数 ...

  5. json字符串和对象的相互转化

    json在代码中是经常用到的,在此总结一下json字符串和对象及数组之间的相互转化: 1.javascript函数方式: <1> JSON.stringify :把一个对象转换成json字 ...

  6. json、xml和java对象之间的转化

    其实从面相对象的角度来理解这个问题,就会很清晰.java中的一切皆对象即把世间万物(Everything in the world)看做java对象,任何处理不了的问题都可以先转化成java对象在做处 ...

  7. Gson转换json数据为对象

    可以通过Gson使用两种方法,将json字符串转换为对象,以下面该段报文做测试 { "id": 84041462, "lastName": "小华&q ...

  8. JSON 与JAVA对象之间的转换(转)

    JSON与XML两者目前在数据交互方面都有很高的使用率,随着现在SOA的兴起,异构系统的整合地位相应提高,本篇文章主要介绍JSON与JAVA对象之间的相互转换. 一.对普通类型的JSON模式的转换 一 ...

  9. js在前端json字符串和对象互相转化

    js在前端json字符串和对象互相转化 //对象转json串 注意:参数必须是对象,数组不起作用,对象格式{'0'=>'a'} JSON.stringify( arr ); //json字符串转 ...

随机推荐

  1. python3 lambda函数

    A=lambda x:x+1 def A(x):return x+1 冒号左边→想要传递的参数冒号右边→想要得到的数(可能带表达式)

  2. tarjan强联通分量(模板)

    #include<cstdio> #include<cstring> #include<cstdlib> #include<iostream> #inc ...

  3. 转 update关联更新在sqlserver和oracle中的实现

    sqlserver和oracle中实现update关联更新的语法不同,都可以通过inline view(内嵌视图)来实现,总的来说sqlserver更简单些. 测试例子如下: create table ...

  4. 在Win7下新建库并修改图标

    win7中在库中添加桌面方法详解 1.在空白处,鼠标右键选择新建——库. 2.命名为桌面,然后选择桌面. 3.鼠标右键选择属性. 4.点击包括文件夹. 5.选择桌面,点击包括文件夹按钮. 6.点击确定 ...

  5. flash流媒体资料

    http://www.docin.com/p-111227070.html Java mina和c++ ace做socket长连接 测试报告: http://www.iteye.com/problem ...

  6. java中使用MD5加密的算法

    MD5,全名Message Digest Algorithm 5,中文名为消息摘要算法第五版,为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护.以下是JAVA语言中使用MD5加密的工具 ...

  7. 日志挖掘(logminer)

    转. 如何使用logminer分析Oracle   联机日志         笔者在工作中经常遇到这样的情况:为了追踪数据的变化,需要知道某个表或者表中的某行数据是什么时候被修改的,以及修改前的内容. ...

  8. MyBatis 知识点

    2010年,随着开发团队转投Google Code旗下,ibatis 3.x 正式更名为 Mybatis. orm工具的基本思想 无论是 hibernate.Mybatis,orm工具有一个共同点: ...

  9. NPOI 创建Excel 设置宽度 样式 颜色对比表

    前两天用NPOI来操作Office软件,在使用的时候有点问题,也有收获,就做个笔记 记录下来,主要做的事数据的导出功能.一些公共的方法,做个笔记. 更多的详细内容可以到NPOI的官方教程去看  htt ...

  10. ASM配置管理

    http://blog.chinaunix.net/uid-22646981-id-3060280.htmlhttp://blog.sina.com.cn/s/blog_6a5aa0300102uys ...