java使用JSON

来源:互联网 发布:海康网络摄像机重量 编辑:程序博客网 时间:2024/06/04 20:08
使用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对象 */@Testpublic 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 ); }@Testpublic 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对象 */@Testpublic 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对象 */@Testpublic 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对象,所以下面就要使用JSONArrayJSONArray jo = JSONArray.fromObject(al);System.out.println(jo);}/** * 将JSON转换为Bean对象 */@Testpublic 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对象 */@Testpublic 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格式 */@Testpublic 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格式 */@Testpublic 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格式提供给前端