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格式提供给前端

 

 

 

 


浅谈Json在java中的使用

1.一般我们在进行客户端和服务端交换数据的时候,会使用Json来进行数据的传输,即转换成字符串类型的json数据来进行数据的交换。2.Json类型的数据一般是 JSONObject(对象),JSONA...
  • u014242422
  • u014242422
  • 2016年11月30日 21:40
  • 4805

Java中使用JSON

Java中使用JSON,首先需要json-lib-2.4-jdk15.jar,但是如果只有这一个jar包还不行,它需要依赖以下几个包: commons-beanutils.jar commons-...
  • softwave
  • softwave
  • 2011年11月16日 09:51
  • 5846

Java开发时如何使用JSON库-七种JSON库的使用及测试

April 4, 2014 By Constantin Marian Alin 翻译:无若  (英语原文:http://www.developer.com/lang/jscript/top-7-o...
  • wojiaopanpan
  • wojiaopanpan
  • 2017年05月12日 16:27
  • 682

javaWeb之json的简单使用

AJAX步骤 function sendRequest() { CreateXHR(); if(XHR) { /*  var name = document.getEleme...
  • freshbin000
  • freshbin000
  • 2016年07月10日 10:54
  • 776

json简介及在Java中的应用

JSON简介 JavaScript 对象表示法(JavaScript Object Notation),是轻量级的文本数据交换格式。其作用和xml有点类似,但是 比 XML 更小、更快,更易解析。J...
  • u012385190
  • u012385190
  • 2016年04月14日 16:55
  • 1998

在Java中使用JSON需要的jar包

在Java中使用json需要引入以下六个jar包,分别为: commons-lang-2.5.jar  commons-collections-3.1.jar  commons-beanuti...
  • zjkC050818
  • zjkC050818
  • 2017年06月21日 16:07
  • 924

java中的JSON操作

(1)JSON: javaScript object Notation(javaScript对象表示法) 比XML数据更小、更快、更容易解析。 数据由名称-值 对表示,由逗号分隔开,花括号保存对象...
  • Amyli_dream
  • Amyli_dream
  • 2017年07月31日 20:21
  • 1568

java JSON操作所要用到的jar包

json-lib: http://sourceforge.net/projects/json-lib/files/json-lib/json-lib-2.4/ ezmorph: http://e...
  • bajie2shuling
  • bajie2shuling
  • 2017年06月21日 08:36
  • 499

Java创建和解析Json数据方法(三)——json-lib包的使用

(二)json-lib包的使用 这篇笔记主要介绍json-lib包的创建和解析json数据的方式,主要是的JSONObject、JSONArray和Java对象:beans, maps...
  • Zen99T
  • Zen99T
  • 2016年01月11日 13:28
  • 2018

JSON for java总结

JSON for java入门总结 一、JSON介绍 JSON(JavaScript Object Notation),类似于XML,是一种数据...
  • a724888
  • a724888
  • 2017年04月24日 11:19
  • 264
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java使用JSON
举报原因:
原因补充:

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