JSON

一.首先导入相关的jar包

  1.commons-beanutils-1.8.3.jar

  2.commons-collections.jar

    3.commons-lang.jar

     4.commons-logging-1.1.1.jar

     5.commons-logging-1.1.1.jar

  6.json-lib-2.4-jdk15

二:说明:

1,JSONObject

 json对象,就是一个键对应一个值,使用的是大括号{ },如:{key:value}

2,JSONArray

  json数组,使用中括号[ ],只不过数组里面的项也是json键值对格式的

  Json对象中添加的是键值对,JSONArray中添加的是Json对象

 

三:使用范例:

1.JSONObject传递key/value

    @Test
	public void test() {
		JSONObject object = new JSONObject();
		object.put("key","value");
		System.out.println(object.toString());
	}

 结果:{"key":"value"}
2.传递数组信息

 

	@Test
	public void test3() {
	    String[] arr = {"asd","dfgd","asd","234"};
	    JSONArray jsonArray = JSONArray.fromObject(arr);  
	    System.out.println(jsonArray.toString());
	}

 

 ["asd","dfgd","asd","234"]

3.传递对象信息:

注意:Person必须是public类型,否则会报

net.sf.json.JSONException: java.lang.NoSuchMethodException: Property ‘name‘ has no getter method

	@Test
	public void test2() {
	  Person p = new Person(11,"wpr");
	    JSONObject jsonObject = JSONObject.fromObject(p);  
	    System.out.println(jsonObject.toString());
	}

 {"name":"wpr","userId":11}

	@Test
	public void test4() {
        Person p = new Person(11,"wpr");
	    JSONObject jsonObject = new JSONObject(); 
	    jsonObject.put("person",p);
	    System.out.println(jsonObject.toString());
	}

 {"person":{"name":"wpr","userId":11}}

4.json传递map对象

Map map和json都是键值对,不同的是map中键值对中间用等号分开,json中键值对中间用冒号分开。其实json就是一种特殊形式的map。

 

       @Test
	public void test5() {
		Map<String,String> map = new JSONObject(); 
		map.put("key1","value1");
		map.put("key2","value2");
		map.put("key3","value3");
		System.out.println(map.toString());
	} 

 

 {"key1":"value1","key2":"value2","key3":"value3"}

 

 

 

 最后说明一下:

当使用Servlet先前台传递Json时,只需要修改输出流就可以了

PrintWrite out = response.getWriter();

out.print(JsonObject);

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。