JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。本文将快速讲解 JSON 格式,并通过代码示例演示如何分别在客户端和服务器端进行 JSON 格式数据的处理。

  Json必需的包:

    commons-httpclient-3.1.jar
    commons-lang-2.4.jar
    commons-logging-1.1.1.jar
    json-lib-2.2.3-jdk13.jar
    ezmorph-1.0.6.jar
    commons-collections-3.2.1.jar

  出现java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher错误是因为没有导入ezmorph.jar文件或版本不对。

  出现java.lang.NoClassDefFoundError: org/apache/commons/collections/map/ListOrderedMap错误是因为没有导入commons-collections.jar文件或版本不对。

1.java集合 json集合之间的转换

  1. Java集合转换成Json集合

  关键类:JSONArray jsonArray = JSONArray.fromObject(Object obj);

  使用说明:将Java集合对象直接传进JSONArray.fromObject()中,得到一个JSONArray集合,再直接使用JSONArray的toString()方法,便可得到json集合

  示例代码:

  1. @Test
  2. public void testCreateJsonArray() {
  3. //Java集合
  4. List<Employee> list = new ArrayList<Employee>();
  5. list.add(new Employee("zhangSan","13"));
  6. list.add(new Employee("liSi","14"));
  7. //创建json集合
  8. JSONArray jsonArray = JSONArray.fromObject(list);
  9. System.out.println(jsonArray.toString());
  10. }

  输出结果:

  1. [{"age":"13","name":"zhangSan"},{"age":"14","name":"liSi"}]

  2. Json集合转换成Java集合

  关键类: JSONArray jsonArray = JSONArray.fromObject(Object obj);

  使用说明:将json字符串对象传入,便可得到一个JSONArray对象,再调用JSONArray对象的toCollection(JSONArray jsonArray, Class clss)方法,便可得到一个Java对象的集合。

  示例代码:

  1. @Test
  2. public void testParseJsonArray() {
  3. //json集合
  4. String jsonString = "[{\"age\":\"13\",\"name\":\"zhangSan\"},{\"age\":\"14\",\"name\":\"liSi\"}]";
  5.  
  6. JSONArray jsonArray = JSONArray.fromObject(jsonString);
  7. //Java集合
  8. List<Employee> list = (List<Employee>) jsonArray.toCollection(jsonArray, Employee.class);
  9. for(Employee employee : list){
  10. System.out.println(employee);
  11. }
  12. }

  输出结果:

  1. [name=zhangSan,age=13]
  2. [name=liSi,age=14]

2.JAVA实现XML与JSON互相转换方法

  1.XML转换为Json

  1. public static String xmlToJson(String xml) {
  2.   XMLSerializer serializer = new XMLSerializer();
  3.   return serializer.read(xml).toString();
  4. }

  2.JSON转换为XML

  1. public static String jsonToXML(String json) {
  2.   XMLSerializer xmlSerializer = new XMLSerializer();
  3.   // 根节点名称
  4.   xmlSerializer.setRootName("xml");
  5.   // 不对类型进行设置
  6.   xmlSerializer.setTypeHintsEnabled(false);
  7.   String xmlStr = "";
  8.   if (json.contains("[") && json.contains("]")) {
  9.     // jsonArray
  10.     JSONArray jobj = JSONArray.fromObject(json);
  11.     xmlStr = xmlSerializer.write(jobj);
  12.   } else {
  13.     // jsonObject
  14.     JSONObject jobj = JSONObject.fromObject(json);
  15.     xmlStr = xmlSerializer.write(jobj);
  16.   }
  17.   System.out.println("转换后的参数:" + xmlStr);
  18.   return xmlStr;
  19. }

java中处理json各种各样转换方法的更多相关文章

  1. java中的JSON数据转换方法fastjson

    1 maven工程引入fastjson <?xml version="1.0" encoding="UTF-8"?> <project xml ...

  2. JAVA中使用JSON进行数据传递

    最近在做一个基于JAVA Servlet的WEB应用以及对应的Anroid应用客户端的开发工作. 其中,在接口的访问和数据的传输方面使用的比较多的是使用JSON对象来操作格式化数据:在服务器端采用JS ...

  3. 转载:JAVA中使用JSON进行数据传递

    转载网址:http://www.cnblogs.com/undead/archive/2012/07/18/2594900.html 最近在做一个基于JAVA Servlet的WEB应用以及对应的An ...

  4. JSON(三)——java中对于JSON格式数据的解析之json-lib与jackson

    java中对于JSON格式数据的操作,主要是json格式字符串与JavaBean之间的相互转换.java中能够解析JSON格式数据的框架有很多,比如json-lib,jackson,阿里巴巴的fast ...

  5. Java中哪个JSON库的解析速度是最快的?

    JSON已经成为当前服务器与WEB应用之间数据传输的公认标准,不过正如许多我们所习以为常的事情一样,你会觉得这是理所当然的便不再深入思考 了.我们很少会去想用到的这些JSON库到底有什么不同,但事实上 ...

  6. 3、示例(在java中使用JSON)

    教程链接(json-smple1.1.1.jar文件) 链接:http://pan.baidu.com/s/1qXPbYHm 密码:v0f0 如何使用java编程语言编码和解码JSON 首先准备环境以 ...

  7. java中的进制转换方法

    java中进行二进制,八进制,十六进制,十进制间进行相互转换 关键字: java 进制转换 十进制转成十六进制: Integer.toHexString(int i) 十进制转成八进制 Integer ...

  8. JAVA中,JSON MAP LIST的相互转换

    1 JSON包含对象和数组,对应于JAVA中的JSONObject,JSONArray 2 String 转JSON对象 JSONObject.fromObject("String" ...

  9. java中对于JSON 的处理 fastjson gson 系统自带的JSON 的选择

    从2月初到8月末,经历了一段痛苦的经历,现在总算感觉已经走出来了,经历那事之后 感觉对人与人之间的感情看的更透了,人也没那么浮躁了: 说实话 以前从来不知道鸟叫有多好听,现在突然觉的大自然真的很美,放 ...

随机推荐

  1. OpenWRT (RT5350) 使能两个串口

    OpenWRT(RT5350) 默认使能一个串口(uartlite) ,当做console口了,另外一个串口(uartf)与gpio复用. 在查找资料的过程中,发现在新的内核中使用到了设备树(devi ...

  2. 脱壳第二讲,手动脱壳PECompact 2.x

    脱壳第二讲,手动脱壳PECompact 2.x PS: 此博客涉及到PE格式.所以观看此博客你要熟悉PE格式 首先,逆向inc2l这个工具,汇编中可能会用的 inc头文件转换为lib的工具 但是他有壳 ...

  3. 多服务器终端交互利器--polysh和atnodes到高逼格日志中心

    最近博客更新的少了,相对而言,我在自己的个人公众号里还是挺活跃的,大家可以扫描旁边的二维码,或者微信搜索公众号:“编程一生”加关注. 在分布式的年代,一个应用需要部署到多台服务器上.那么要查看日志文件 ...

  4. px em rem的详解与区别

    在前端项目开发中,px,em,以及rem都是页面布局常用的单位,虽然它们是长度单位,但是所含的意义不一样.通过复习和查阅,总结了以下知识. px像素(Pixel) 定义:相对长度单位.像素px是相对于 ...

  5. [Scikit-learn] 4.4 Dimensionality reduction - PCA

    2.5. Decomposing signals in components (matrix factorization problems) 2.5.1. Principal component an ...

  6. scp命令,用来在本地和远程相互传递文件,非常方便

    scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的.可能会稍微影响一下速度.当你服务器 ...

  7. poj3270Cow Sorting(置换+贪心)

    Cow Sorting Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 7587   Accepted: 2982 Descr ...

  8. HDU 1074 Doing Homework (状态压缩DP)

    Doing Homework Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)To ...

  9. route命令实例练习

    第1章 命令配置 虚拟服务器 网卡配置信息 虚拟网卡名称 虚拟网卡模式 服务器01 eth1 10.0.0.10/24 nat模式 服务器02 eth2 10.0.0.11/24 nat模式 eth3 ...

  10. HQL语法

    HQL:Hibernate Query Language HQL是完全面向对象的查询语言,因此可以支持继承和多态等特征. $下面介绍HQL语句的语法 1.from子句 from Person 表明从P ...