java使用JSON

原创 2013年12月04日 10:04:58
使用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格式提供给前端

 

 

 

 


相关文章推荐

Java中使用Json

  • 2015年07月03日 20:26
  • 6KB
  • 下载

java使用https post发送json数据

package com.saygou.weixin; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; i...

java json jar包(共6个有使用说明)

  • 2014年06月06日 11:14
  • 1.13MB
  • 下载

Java+oracle树查询实现easyui中tree使用的json

1.前端页面使用easyui的tree $("#some_tree").tree({     url:'/getTreeJsonData.action',     lines :true, ...

JSON--JAVA相互转换数据使用方法

  • 2012年10月19日 15:57
  • 97KB
  • 下载

java配合json使用的JAR

  • 2013年12月09日 14:12
  • 1.98MB
  • 下载

Android 使用GSON解析JSON 并转换为JAVA对象

关于JSON的介绍(摘自:http://www.oschina.net/p/google-json): Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射...
  • Fover23
  • Fover23
  • 2013年04月11日 17:19
  • 864
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java使用JSON
举报原因:
原因补充:

(最多只允许输入30个字)