关闭

java使用JSON

302人阅读 评论(0) 收藏 举报
使用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格式提供给前端

 

 

 

 


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:310270次
    • 积分:8717
    • 等级:
    • 排名:第2262名
    • 原创:1096篇
    • 转载:14篇
    • 译文:0篇
    • 评论:5条
    最新评论