使用json-lib-2.3-jdk15.jar和ezmorph-1.0.6.jar
如果要JSON和XML转换要使用xom-1.0.jar
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.Map;
- import org.junit.Test;
- import net.sf.json.JSON;
- import net.sf.json.JSONArray;
- import net.sf.json.JSONObject;
- import net.sf.json.JSONSerializer;
- import net.sf.json.xml.XMLSerializer;
- public class JunitTest {
- public static void main(String[] args) {
- }
- /**
- * 将Map转换为JSON对象
- */
- @Test
- public void testMap(){
- Map map = new HashMap();
- map.put( "name", "json" );
- map.put( "bool", Boolean.TRUE );
- map.put( "int", new Integer(1) );
- map.put( "arr", new String[]{"a","b"} );
- map.put( "func", "function(i){ return this.arr[i]; }" );
- JSONObject json = JSONObject.fromObject( map );
- System.out.println( json );
- }
- @Test
- public void JsonToMap(){
- String str = "{\"age\":2,\"name\":\"zhangsan\"}";
- JSONObject resultJSON = JSONObject.fromObject(str);
- Map mapp = (Map)JSONObject.toBean(resultJSON, Map.class);
- System.out.println(mapp.get("name"));
- }
- /**
- * 将Bean转换为Json对象
- */
- @Test
- public void testBean(){
- JSONObject jsonObject = JSONObject.fromObject( new Person() );
- System.out.println( jsonObject );
- //{"age":0,"name":""}
- Person p1 = new Person();
- p1.setAge(2);
- p1.setName("zhangsan");
- JSONObject json = JSONObject.fromObject(p1);
- System.out.println( json );
- }
- /**
- * 将BeanList转换为JSON对象
- */
- @Test
- public void testBeans(){
- ArrayList<Person> al = new ArrayList<Person>();
- Person p1 = new Person();
- Person p2 = new Person();
- p1.setAge(2);
- p1.setName("zhangsan");
- p2.setAge(2);
- p2.setName("zhangsan");
- al.add(p1);
- al.add(p2);
- //上面使用的是ArrayList对象,所以下面就要使用JSONArray
- JSONArray jo = JSONArray.fromObject(al);
- System.out.println(jo);
- }
- /**
- * 将JSON转换为Bean对象
- */
- @Test
- public void testStringToBean(){
- String str = "{\"age\":2,\"name\":\"zhangsan\"}";
- JSONObject jsonObject = JSONObject.fromObject(str);
- //需要指明转换为那个类
- Person bean = (Person)JSONObject.toBean(jsonObject,Person.class);
- System.out.println(bean.getAge());
- System.out.println(bean.getName());
- }
- /**
- * 将字符串JSON格式转换为BeanList对象
- */
- @Test
- public void testJsonToList(){
- String str = "[{\"age\":2,\"name\":\"zhangsan\"},{\"age\":1,\"name\":\"hb\"}]";
- JSONArray array = JSONArray.fromObject(str);
- Object[] objs = new Object[array.size()];
- for(int i = 0; i < array.size(); i++){
- JSONObject jsonObject = array.getJSONObject(i);
- objs[i] = JSONObject.toBean(jsonObject, Person.class);
- }
- for(int i = 0; i < objs.length; i++){
- System.out.println(((Person)objs[i]).getAge());
- System.out.println(((Person)objs[i]).getName());
- }
- }
- /**
- * 如果要使用JSON与XML相互转换,必须导入xom.jar
- * 将JSON对象转换为XML格式
- */
- @Test
- public void jsonToXML(){
- String jsonStr = "[{\"age\":2,\"name\":\"zhangsan\"},{\"age\":1,\"name\":\"hb\"}]";
- XMLSerializer xmlSerializer = new XMLSerializer();
- JSON json = JSONSerializer.toJSON(jsonStr);
- xmlSerializer.setTypeHintsEnabled( false );
- xmlSerializer.setRootName("body" );
- String xml = xmlSerializer.write( json );
- System.out.println(xml);
- }
- /**
- * 将XML格式的文件转换为JSON格式
- */
- @Test
- public void XMLToJson(){
- String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><body><e><age>2</age><name>zhangsan</name></e><e><age>1</age><name>hb</name></e></body>";
- String result = new XMLSerializer().read(xml).toString();
- System.out.println(result);
- }
- }
现在AJAX用得越来越广泛了,前端和sever端的数据传递使用JSON格式来交互,这里我简单的介绍一下server端将对象转换为JSON格式提供给前端