Json,Gson,FastJson解析笔记

1.将JavaBean转换成Json对象:

  1. public static String CreatJsonFromObject(Object key,Object value)
  2. {
  3. JSONObject JObj =new JSONObject();
  4. JObj.put(key, value);
  5. return JObj.toString();
  6. }

2.解析Json:

  1. public static  Person parseJsonPerson(String key,String jsonStr)
  2. {
  3. System.out.print(key+"-->"+jsonStr);
  4. Person person =new Person();
  5. JSONObject jobj;
  6. try
  7. {
  8. jobj = new JSONObject(jsonStr);
  9. JSONObject personObj =jobj.getJSONObject(key);
  10. person.setAge(personObj.getInt("age"));
  11. person.setName(personObj.getString("name"));
  12. person.setSex(personObj.getString("sex"));
  13. }
  14. catch (JSONException e)
  15. {
  16. e.printStackTrace();
  17. }
  18. return person;
  19. }
  20. public static List<Person> parseJsonListPerson(String key,String jsonStr)
  21. {
  22. System.out.print(key+"-->"+jsonStr);
  23. List<Person> list=new ArrayList<Person>();
  24. try
  25. {
  26. JSONObject jobj;
  27. jobj = new JSONObject(jsonStr);
  28. JSONArray personArr =jobj.getJSONArray(key);
  29. for(int i=0;i<personArr.length();i++)
  30. {
  31. JSONObject personObj = personArr.getJSONObject(i);
  32. Person person =new Person();
  33. person.setAge(personObj.getInt("age"));
  34. person.setName(personObj.getString("name"));
  35. person.setSex(personObj.getString("sex"));
  36. list.add(person);
  37. }
  38. }
  39. catch (JSONException e)
  40. {
  41. // TODO Auto-generated catch block
  42. e.printStackTrace();
  43. }
  44. return list;
  45. }
  46. public static List<String> parseJsonListString(String key,String jsonStr)
  47. {
  48. System.out.print(key+"-->"+jsonStr);
  49. List<String> list =new ArrayList<String>();
  50. try
  51. {
  52. JSONObject jobj;
  53. jobj = new JSONObject(jsonStr);
  54. JSONArray personArr =jobj.getJSONArray(key);
  55. for(int i=0;i<personArr.length();i++)
  56. {
  57. String personObj = personArr.getString(i);
  58. list.add(personObj);
  59. }
  60. }
  61. catch (JSONException e)
  62. {
  63. // TODO Auto-generated catch block
  64. e.printStackTrace();
  65. }
  66. return list;
  67. }
  68. public static List<Map<String, Object>> parseJsonListMap(String key,String jsonStr)
  69. {
  70. System.out.print(key+"-->"+jsonStr);
  71. List<Map<String, Object>> list =new ArrayList<Map<String,Object>>();
  72. try
  73. {
  74. JSONObject jobj;
  75. jobj = new JSONObject(jsonStr);
  76. JSONArray personArr =jobj.getJSONArray(key);
  77. for(int i=0;i<personArr.length();i++)
  78. {
  79. JSONObject personObj = personArr.getJSONObject(i);
  80. Iterator<String> set =personObj.keys();
  81. while(set.hasNext())
  82. {
  83. String tempKey =set.next();
  84. Object tempValue =personObj.get(tempKey);
  85. HashMap<String,Object> map =new HashMap<String,Object>();
  86. //注意tempValue可能为空
  87. if(tempValue == null)
  88. {
  89. tempValue="";
  90. }
  91. map.put(tempKey, tempValue);
  92. list.add(map);
  93. }
  94. }
  95. }
  96. catch (JSONException e)
  97. {
  98. // TODO Auto-generated catch block
  99. e.printStackTrace();
  100. }
  101. return list;
  102. }

Gson:

1.将JavaBean转换成Gson String

  1. public static String CreatJsonFromObject(Object value)
  2. {
  3. Gson gson =new Gson();
  4. return gson.toJson(value);
  5. }

2.解析Gson String

  1. public static <T> T getPerson(String Json, Class<T> cls)
  2. {
  3. Gson gson = new Gson();
  4. T t = gson.fromJson(Json, cls);
  5. return t;
  6. }
  7. public static <T> List<T> getPersons(String Json, Class<T> Type)
  8. {
  9. List<T> list = new Gson().fromJson(Json, new TypeToken<List<T>>()
  10. {
  11. }.getType());
  12. return list;
  13. }
  14. public  static List<String> getString(String Json)
  15. {
  16. List<String> retStr = new Gson().fromJson(Json, new TypeToken<List<String>>()
  17. {
  18. }.getType());
  19. return retStr;
  20. }
  21. public   static List<Map<String, Object>> getListMap(String Json)
  22. {
  23. List<Map<String, Object>> retStr = new Gson().fromJson(Json, new TypeToken<List<Map<String, Object>>>()
  24. {
  25. }.getType());
  26. return retStr;
  27. }

FastJson:

1.将JavaBean转换成FastJson String

服务端利用上述方式实现

2.解析FastJson String

  1. public static <T> T getPerson(String jsonStr, Class<T> cls)
  2. {
  3. T t = JSON.parseObject(jsonStr, cls);
  4. return t;
  5. }
  6. public static <T> List<T> getPersons(String jsonStr, Class<T> cls)
  7. {
  8. List<T> list = JSON.parseArray(jsonStr, cls);
  9. return list;
  10. }
  11. /**
  12. * @param jsonStr
  13. * @return
  14. */
  15. public static List<Map<String, Object>> getListMap(String jsonStr)
  16. {
  17. List<Map<String, Object>> list = JSON.parseObject(jsonStr, new TypeReference<List<Map<String, Object>>>()
  18. {
  19. });
  20. return list;
  21. }

Json,Gson,FastJson解析笔记的更多相关文章

  1. android Json Gson FastJson 解析

    一 Json xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:a ...

  2. Android JSON,Gson,fastjson实现比较

    activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu ...

  3. JSON 之FastJson解析

    http://blog.sina.com.cn/s/blog_7ffb8dd501013qas.html 一.阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具 ...

  4. (转)JSON 之FastJson解析

    一.阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parse ...

  5. Android进阶笔记17:3种JSON解析工具(org.json、fastjson、gson)

    一. 目前解析json有三种工具:org.json(Java常用的解析),fastjson(阿里巴巴工程师开发的),Gson(Google官网出的),其中解析速度最快的是Gson. 3种json工具下 ...

  6. Android进阶笔记14:3种JSON解析工具(org.json、fastjson、gson)

    一. 目前解析json有三种工具:org.json(Java常用的解析),fastjson(阿里巴巴工程师开发的),Gson(Google官网出的),其中解析速度最快的是Gson. 3种json工具下 ...

  7. [转] 各种Json解析工具比较 - json-lib/Jackson/Gson/FastJson

    JSON技术的调研报告 一 .各个JSON技术的简介和优劣1.json-libjson-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确实是依赖于很多第三方包,包括com ...

  8. Java对【JSON数据的解析】--fastjson解析法

    要求:解析下面JSON数据 String string = "{no:1,name:'Android',employees:[{name:'zhangsan',age:20},{name:' ...

  9. fastjson解析任意json

    fastjson解析任意json到bean 解析案例的代码 package com.base.config; import java.util.List; import com.alibaba.fas ...

随机推荐

  1. 首个spring mvc 测试例子搭建遇到问题记录

    开发环境:jdk1.7 + tomcat7 + Eclipse Juno 首先下载spring 相关jar包 我用的是 spring-framework-3.2.1.RELEASE 下载地址:http ...

  2. HDU1584:蜘蛛牌(DFS)

    Problem Description 蜘蛛牌是windows xp操作系统自带的一款纸牌游戏,游戏规则是这样的:只能将牌拖到比她大一的牌上面(A最小,K最大),如果拖动的牌上有按顺序排好的牌时,那么 ...

  3. css Gradients(渐变)

    渐变分为4类 1:线性渐变(Linear Gradients)- 向下/向上/向左/向右/对角方向 2:径向渐变(Radial Gradients)- 由它们的中心定义 3:对角渐变 4:角度渐变 以 ...

  4. 【Demo 0009】表视图控制器

    本章学习要点:       1.  掌握表视图控制器结构;       2.  掌握表视图控制器的基本使用;       3.  掌握表视图表格的基本使用:       4.  掌握自定义表视图表格及 ...

  5. UVA11324-- The Largest Clique(SCC+DP)

    题目链接 题意:给出一张有向图,求一个结点数最大的结点集,使得该结点集中随意两个结点u和v满足:要么u能够到到v,要么v能够到达u(u和v能够互相到达) 思路:我们能够缩点,用Tarjan求出全部强连 ...

  6. 【问题解决】syntax error: unexpected end of file或-bash: ./full_build.sh: /bin/bash^M: bad interpreter: No

    在阅读的过程中有不论什么问题,欢迎一起交流 邮箱:1494713801@qq.com    QQ:1494713801 运行一个脚本full_build.sh 时, 一直是提示我: -bash: ./ ...

  7. iOS高效开源类库

    因为iOS SDK相对比较底层,所以开发者就得受累多做一些体力活.不过幸运的是,有很多第三方的类库可以用来简化很多不必要的工作.笔者整理了一下在本人学习过程中用到的一些比较有用Objective-C开 ...

  8. 循环获取json对象的属性名

    今天做项目遇到一个难题,asp.net 项目,数据库中一个表有八十多个字段,我已经在前台将表转化为了json字符数组,我要在前台循环这八十多个字段,我只能根据属性名来处理,一筹莫展,最终解决,收益颇多 ...

  9. KMP算法(具体求串的next[n])

     怎么求串的模式值next[n]   )next[0]= -1  意义:不论什么串的第一个字符的模式值规定为-1. )next[j]= -1   意义:模式串T中下标为j的字符,假设与首字符 同样,且 ...

  10. 主流JavaScript框架(Dojo、Google Closure、jQuery、Prototype、Mootools和YUI)的分析和对比

    本文主要选取了目前比较流行的JavaScript框架Dojo.Google Closure.jQuery.Prototype.Mootools和YUI进行对比,主要是根据网上的资料整理而成,希望可以供 ...