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集合

  示例代码:

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

  输出结果:

[{"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对象的集合。

  示例代码:

    @Test
public void testParseJsonArray() {
//json集合
String jsonString = "[{\"age\":\"13\",\"name\":\"zhangSan\"},{\"age\":\"14\",\"name\":\"liSi\"}]"; JSONArray jsonArray = JSONArray.fromObject(jsonString);
//Java集合
List<Employee> list = (List<Employee>) jsonArray.toCollection(jsonArray, Employee.class);
for(Employee employee : list){
System.out.println(employee);
}
}

  输出结果:

[name=zhangSan,age=13]
[name=liSi,age=14]

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

  1.XML转换为Json

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

  2.JSON转换为XML

public static String jsonToXML(String json) {
  XMLSerializer xmlSerializer = new XMLSerializer();
  // 根节点名称
  xmlSerializer.setRootName("xml");
  // 不对类型进行设置
  xmlSerializer.setTypeHintsEnabled(false);
  String xmlStr = "";
  if (json.contains("[") && json.contains("]")) {
    // jsonArray
    JSONArray jobj = JSONArray.fromObject(json);
    xmlStr = xmlSerializer.write(jobj);
  } else {
    // jsonObject
    JSONObject jobj = JSONObject.fromObject(json);
    xmlStr = xmlSerializer.write(jobj);
  }
  System.out.println("转换后的参数:" + xmlStr);
  return xmlStr;
}

最新文章

  1. 使用Objective-C 计算代码运行时间
  2. session、cookie
  3. line-height1.5和line-height:150%的区别
  4. angular实例教程(用来熟悉指令和过滤器的编写)
  5. php基础复习(3)文件上传于下载
  6. LintCode &quot;Partition Array by Odd and Even&quot;
  7. RabbitMQ链接不上异常
  8. int (*p)[4] p 是二级指针 二维数组 二级指针 .xml
  9. Redis 如何导出数据
  10. OCP prepare 20140627
  11. Highlight On Mouseover Effect With JQuery
  12. 经常使用Firefox插件大全
  13. 2272: [Usaco2011 Feb]Cowlphabet 奶牛文字
  14. [poj3565]Ants
  15. js字母/字符与ASCII码转换
  16. 为什么你需要少看垃圾博客以及如何在Python里精确地四舍五入
  17. 1093 字符串A+B
  18. nodejs -- fs模块 ---&gt; readFile 函数 1) fs.readFile(filename, &quot;binary&quot;, function(error, file) 2) response.write(file, &quot;binary&quot;);
  19. 关于 transparent rgba display:none; opacity visiblity 关于em
  20. set&lt;pair&lt;int,int&gt; &gt;的用法

热门文章

  1. MVVM框架解析(一)
  2. iOS代码处理横屏问题
  3. canvas图表详解系列(3):动态饼状图(原生Js仿echarts饼状图)
  4. 浅试 Webview 一app 加载 H5小游戏
  5. MongoDB高级索引
  6. 一个简单的makefile文件编写
  7. 有关CUBLAS中的矩阵乘法函数
  8. AngularJS学习篇(二十一)
  9. Android开发之漫漫长途 Ⅰ——Android系统的创世之初以及Activity的生命周期
  10. SQL Server Backup &amp; Restore