java中处理json各种各样转换方法
Posted Monkey丶军
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中处理json各种各样转换方法相关的知识,希望对你有一定的参考价值。
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; }
以上是关于java中处理json各种各样转换方法的主要内容,如果未能解决你的问题,请参考以下文章