点击下载json工具

点击下载支持jar包

1.从Object到String
 要先用Object对象构造一个JSONObject或者JSONArray对象,然后调用它的toString()方法即可

(1)示例一

  1. Book book=new Book();
  2.  
  3. book.setName("Java");
  4.  
  5. book.setPrice(52.3f);
  6.  
  7. JSONObject object=JSONObject.fromObject(book);
  8.  
  9. System.out.println(object.toString());

(2)示例二

  1. Book book=new Book();
  2.  
  3. book.setName("Java");
  4.  
  5. book.setPrice(52.3f);
  6.  
  7. Book book2=new Book();
  8.  
  9. book2.setName("C");
  10.  
  11. book2.setPrice(42.3f);
  12.  
  13. List list=new ArrayList();
  14.  
  15. list.add(book);
  16.  
  17. list.add(book2);
  18.  
  19. JSONArray arry=JSONArray.fromObject(list);
  20.  
  21. System.out.println(arry.toString());
  22.  
  23. //结果如下:
  24.  
  25. [{"name":"Java","price":52.3},{"name":"C","price":42.3}]

2.从String到Object
 要先用String对象构造一个JSONObject或者JSONArray对象
(1)示例一

  1. String json="{name:'Java',price:52.3}";
  2.  
  3. JSONObject object=JSONObject.fromObject(json);
  4.  
  5. System.out.println(object.get("name")+" "+object.get("price"));

(2)示例二

  1. String json="[{name:'Java',price:52.3},{name:'C',price:42.3}]";
  2.  
  3. JSONArray array=JSONArray.fromObject(json);
  4.  
  5. for(int i=0;i<array.size();i++){
  6.  
  7. Map o=(Map)array.get(i);
  8.  
  9. System.out.println(o.get("name")+" "+o.get("price"));
  10.  
  11. }

3.从String到Bean

(1)单个Bean对象

  1. String json="{name:'Java',price:52.3}";
  2.  
  3. JSONObject object=JSONObject.fromObject(json);
  4.  
  5. Product product=(Product)JSONObject.toBean(object,Product.class);
  6.  
  7. System.out.println(product.getName()+" "+product.getPrice());

(2).Bean的数组

  1. String json="[{name:'Java',price:52.3},{name:'C',price:42.3}]";
  2.  
  3. JSONArray array=JSONArray.fromObject(json);
  4.  
  5. Product[] products=(Product[]) JSONArray.toArray(array,Product.class);
  6.  
  7. for(Product p:products){
  8.  
  9. System.out.println(p.getName()+" "+p.getPrice());
  10.  
  11. }

使用List和Map集合结合上面方法拼装自定义json数据

  1. /**
  2. * 审批状态列表
  3. * @return json
  4. * @throws Exception
  5. */
  6. public String applyList() throws Exception {
  7. List<Map<String,String>> list = new ArrayList<Map<String,String>>();
  8. Map<String,String> map = new HashMap<String, String>();
  9. map.put("value", "");
  10. map.put("text", "全部");
  11. list.add(map);
  12. map = new HashMap<String, String>();
  13. map.put("value", "-1");
  14. map.put("text", "未通过");
  15. list.add(map);
  16. map = new HashMap<String, String>();
  17. map.put("value", "0");
  18. map.put("text", "主任审批中");
  19. list.add(map);
  20. map = new HashMap<String, String>();
  21. map.put("value", "1");
  22. map.put("text", "经理审批中");
  23. list.add(map);
  24. map = new HashMap<String, String>();
  25. map.put("value", "2");
  26. map.put("text", "已通过");
  27. list.add(map);
  28. JSONArray arry=JSONArray.fromObject(list);
  29. this.jsonObject = arry.toString();
  30. return JSON;
  31. }

得到如下JSON数据:

  1. [
  2. {
  3. "text": "全部",
  4. "value": ""
  5. },
  6. {
  7. "text": "未通过",
  8. "value": "-1"
  9. },
  10. {
  11. "text": "主任审批中",
  12. "value": "0"
  13. },
  14. {
  15. "text": "经理审批中",
  16. "value": "1"
  17. },
  18. {
  19. "text": "已通过",
  20. "value": "2"
  21. }
  22. ]

自定义封装JSON操作的类

  1. package com.util;
  2.  
  3. import java.util.List;
  4.  
  5. import java.util.Map;
  6.  
  7. import net.sf.json.JSONArray;
  8.  
  9. import net.sf.json.JSONObject;
  10.  
  11. public class JsonHelper {
  12.  
  13. //从普通的Bean转换为字符串
  14.  
  15. public static String getJson(Object o){
  16.  
  17. JSONObject jo=JSONObject.fromObject(o);
  18.  
  19. return jo.toString();
  20.  
  21. }
  22.  
  23. //从Java的列表转换为字符串
  24.  
  25. public static String getJson(List list){
  26.  
  27. JSONArray ja=JSONArray.fromObject(list);
  28.  
  29. return ja.toString();
  30.  
  31. }
  32.  
  33. //从Java对象数组转换为字符串
  34.  
  35. public static String getJson(Object[] arry){
  36.  
  37. JSONArray ja=JSONArray.fromObject(arry);
  38.  
  39. return ja.toString();
  40.  
  41. }
  42.  
  43. //从json格式的字符串转换为Map对象
  44.  
  45. public static Map getObject(String s){
  46.  
  47. return JSONObject.fromObject(s);
  48.  
  49. }
  50.  
  51. //从json格式的字符串转换为List数组
  52.  
  53. public static List getArray(String s){
  54.  
  55. return JSONArray.fromObject(s);
  56.  
  57. }
  58.  
  59. //从json格式的字符串转换为某个Bean
  60.  
  61. public static Object getObject(String s,Class cls){
  62.  
  63. JSONObject jo=JSONObject.fromObject(s);
  64.  
  65. return JSONObject.toBean(jo, cls);
  66.  
  67. }
  68.  
  69. //从json格式的字符串转换为某类对象的数组
  70.  
  71. public static Object getArray(String s,Class cls){
  72.  
  73. JSONArray ja=JSONArray.fromObject(s);
  74.  
  75. return JSONArray.toArray(ja, cls);
  76.  
  77. }
  78.  
  79. }

拼json方法:

  1. /**
  2. * 统计页面
  3. * @return
  4. * @throws Exception
  5. */
  6. public String getMonthFlow() throws Exception{
  7.  
  8. List list = new ArrayList();
  9. list = totalQuantityManager.getMonthFlow();
  10. ArrayList list1 = new ArrayList();
  11. ArrayList list2 = new ArrayList();
  12. ArrayList list3 = new ArrayList();
  13. ArrayList list4 = new ArrayList();
  14. for (int i = 0; i < list.size(); i++) {
  15. Object[] strs = (Object[]) list.get(i);
  16. list1.add(strs[1]);
  17. list2.add(strs[2]);
  18. list3.add(strs[4]);
  19. list4.add(strs[5]);
  20. }
  21.  
  22. Hashtable dic = new Hashtable();
  23. dic.put("huaXue",list1);
  24. dic.put("anDan",list2);
  25. dic.put("erYangHualiu",list3);
  26. dic.put("danYangHuawu",list4);
  27. this.jsonObject=JSONObject.fromObject(dic).toString();
  28. return JSON;
  29. }

json数据:

  1. {
  2. "huaXue": [
  3. 400,
  4. 1132,
  5. 601,
  6. 500,
  7. 120,
  8. 90,
  9. 1000
  10. ],
  11. "anDan": [
  12. 1320,
  13. 7000,
  14. 601,
  15. 234,
  16. 120,
  17. 50000,
  18. 20
  19. ],
  20. "erYangHualiu": [
  21. 1320,
  22. 1132,
  23. 601,
  24. 234,
  25. 120,
  26. 90,
  27. 20
  28. ],
  29. "danYangHuawu": [
  30. 1320,
  31. 1132,
  32. 601,
  33. 234,
  34. 120,
  35. 90,
  36. 20
  37. ]
  38. }

JSONObject和JSONArray的更多相关文章

  1. json学习系列(6)JSONObject和JSONArray是JDK的集合部分延伸

    我一直觉得JSONObject和JSONArray是JDK集合部分的延伸,它们与JDK的List和Map一脉相承.通过研究JSONObject和JSONArray的结构,我们顺便也复习一下JDK的内容 ...

  2. JSONObject与JSONArray的使用

    1.JAR包简介 要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包: commons-lang.jar commons-beanutils.jar commons ...

  3. Java学习笔记50:JSONObject与JSONArray的使用

    Java不像PHP解析和生产JSON总是一个比较痛苦的过程.但是使用JSONObject和JSONArray会让整个过程相对舒服一些. 需要依赖的包:commons-lang.jar commons- ...

  4. Gson解析JsonObject和JsonArray

    Gson中重要的几个核心类: Gson.JsonParser.JsonObject.JsonArray. 下面就是解析的步骤: public void parserJsonArray(String s ...

  5. [转]JSONObject与JSONArray的使用

    http://www.cnblogs.com/xwdreamer/archive/2011/12/16/2296904.html 参考文献: http://blog.csdn.net/huangwuy ...

  6. json:JSONObject与JSONArray的使用

    1.JAR包简介 要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包: commons-lang.jar commons-beanutils.jar commons ...

  7. JSONObject和JSONArray区别及基本用法

    一.JSONObject和JSONArray的数据表示形式 JSONObject的数据是用 {  } 来表示的, 例如:   { "id" : "123", & ...

  8. fastjson如何判断JSONObject和JSONArray

    1.fastjson如何判断JSONObject和JSONArray,百度一下,教程还真不少,但是是阿里的fastjson的我是没有找到合适的方法.这里用一个还算可以的方法,算是实现了这个效果. 网上 ...

  9. JSONObject、JSONArray、Map、JavaBean的相互转换

    1,JSONObject json对象,就是一个键对应一个值,使用的是大括号{ },如:{key:value} 2,JSONArray json数组,使用中括号[ ],只不过数组里面的项也是json键 ...

随机推荐

  1. ZendStudio10 代码格式化 xml

    <?xml version="1.0" encoding="UTF-8" standalone="no"?> <profi ...

  2. 【Android 错误记录】Conversion to Dalvik format failed with error 1 错误

    错误原因:依赖的包中有冲突,比如依赖了同一个jar包的不同版本等   在以往测试的过程中,出现过几次这个问题,根本原因都是因为有冲突了,但是表现形式可能不一样   情况1: 有一个叫DemoAPP的工 ...

  3. ruby和Python简单对比

    前不久学了ruby,发现ruby和Python非常像,于是自个测试对比了下,测完了才知道网上有现成的……下面是测试结果   序列(包括列表和元组等)有分片的特点:可能会比较方便的提取其中特定元素,暂时 ...

  4. MYSQL 表分区的 3 方法

    背景知识: 表分区是把逻辑上同一范围的数据保存到同一个文件中,就和超市一样,把同类商品放在同一个区域,把不同的商品放在不同的地方.不同的是超市中 是根据用途分类的,表分区是根据它的取值区间来分的. 分 ...

  5. View, Activity, Window

    View, Activity, Window 2010-03-02 10:42:56|  分类: android|举报|字号 订阅     对于屏幕显示而言,整个是window,这个window里显示 ...

  6. Linux下chkconfig命令详解(转)

    Linux下chkconfig命令详解 chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息.谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接. ...

  7. 构造函时和this指针

    通常this指针在对象构造完毕后才完全生成,而在构造函数执行过程中,对象还没有完全生成,所以this指针也是没有完全生成的,在构造函数中使用this指针会存在问题,应该尽量避免. 构造函数中可以访问对 ...

  8. 直播视频插件--sewise player

    直播视频插件 -- sewise player 2017-1-9 因为公司要开发一个关于购车直播的新项目,需要在页面引入直播视频,项目组之前都没有做过关于直播类型的项目,所以可以说是真的从各种资源中筛 ...

  9. CentOS6.5与XP双系统安装

    因为工作的须要,须要安装一个XP系统和一个CentOS系统.依照在网上找到的一些方法尝试了下,结果都不是非常理想.最后,经过尝试和寻找,找到了一个比較方便的方法. 一.分区 本人的电脑硬盘是500G, ...

  10. Google C++ style guide——头文件

    1.#define保护 使用#define防止头文件被多重包括.命名格式为:<PROJECT>_<PATH>_<FILE>_H_ 比如,foo中的头文件foo/sr ...