org.json的包的使用

官网:http://www.json.org/json-zh.html    lib下载:http://sourceforge.net/projects/json-lib/files/

实例:https://github.com/douglascrockford/JSON-java   (这个实例可以研究一下,自己没有研究)

json.jsp:http://json-taglib.sourceforge.net/

其中org.json和json-lib比较简单,两者使用上差不多。

推荐的博客:

http://www.open-open.com/lib/view/open1381566882614.html(一个入门的例子)

http://www.cnblogs.com/undead/archive/2012/07/18/2594900.html (这个例子比较全面)

自己的一些感悟:有时候需要组建或者拼接一些json格式的数据,那么就有两种思路:通过org.json的类来put一些元素来拼接,第二种方式就是通过,list、HashMap来存放数据,然后把这些List 、HashMap转换为json格式的数据;

最后,总结,没有找到直接把json数据转换成Java对象的方法,但是,可以自己简单的封装一下。据说,json-lib这个工具可有

注意事项:

JSONObject有很多optXXX方法,比如optBoolean, optString, optInt...

他们的意思是,如果这个jsonObject有这个属性,则返回这个属性,否则返回一个默认值

例如:

  1. JSONObject json = new JSONObject(content);  
  2. int x = json.optInt("length"0);  
  表示如果json有length属性,则返回length的整数值,否则返回0。

其他的optXXX方法都类似。

自己写的一些测试实例:

package test;

import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.json.JSONStringer;
import org.json.JSONTokener;
import org.junit.Test;

public class JsonObj {
	@Test
	public void test01() {
		JSONObject obj = new JSONObject(new User(1, "yanfeng"));
		try {
			System.out.println(obj.getInt("id"));
			System.out.println(obj.getString("name"));
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	@Test
	public void test02() {
		String json = "{'id':'1','name':'yanfeng'}";
		JSONObject obj = null;
		try {
			obj = new JSONObject(json);
			System.out.println(obj.getInt("id"));
			System.out.println(obj.getString("name"));
		} catch (JSONException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}

	}

	@Test
	public void jsonStringerTest() {
		JSONStringer stringer = new JSONStringer();
		try {
			stringer.object().key("name").value("xiazdong").key("age")
					.value(20).endObject();
			System.out.println(stringer);
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	@Test
	public void jsonStringerTest2() throws Throwable {
		JSONStringer jsonStringer = new JSONStringer();
		JSONObject obj6 = new JSONObject();
		obj6.put("title", "book1").put("price", "$11");

		JSONObject obj3 = new JSONObject();
		obj3.put("book", obj6);
		obj3.put("author", new JSONObject().put("name", "author-1"));

		JSONObject obj5 = new JSONObject();
		obj5.put("title", "book2").put("price", "$22");
		JSONObject obj4 = new JSONObject();
		obj4.put("book", obj5);
		obj4.put("author", new JSONObject().put("name", "author-2"));

		JSONArray obj2 = new JSONArray();
		obj2.put(obj3).put(obj4);

		JSONObject obj1 = new JSONObject();
		obj1.put("title", "BOOK");
		obj1.put("signing", obj2);

		jsonStringer.object().key("session").value(obj1).endObject();
		System.out.println(jsonStringer.toString());

		PrintWriter out = new PrintWriter(new FileOutputStream(
				"D:\\fabu\\1.txt"));

		out.println(jsonStringer.toString());
		out.close();
	}

	@Test
	public void JSONTokenerTest() throws Throwable {
		JSONObject jsonobj = new JSONObject(new JSONTokener(new FileReader(
				new File("D:\\fabu\\1.txt"))));
		System.out.println(jsonobj.getJSONObject("session")
				.getJSONArray("signing").getJSONObject(1).getJSONObject("book")
				.getString("title"));
	}
	@Test
	public void test05() throws Throwable{
		String json = "{'name':'reiz'}";   
        JSONObject jsonObj = new JSONObject(json);   
        String name = jsonObj.getString("name");   
  
        jsonObj.put("initial", name.substring(0, 1).toUpperCase());   
  
        String[] likes = new String[] { "JavaScript", "Skiing", "Apple Pie" };   
        jsonObj.put("likes", likes);   
  
        Map <String, String> ingredients = new HashMap <String, String>();   
        ingredients.put("apples", "3kg");   
        ingredients.put("sugar", "1kg");   
        ingredients.put("pastry", "2.4kg");   
        ingredients.put("bestEaten", "outdoors");   
        jsonObj.put("ingredients", ingredients);   
        System.out.println(jsonObj);   
  
        System.out.println(jsonObj);
	}
	
	//最后,总结,没有找到直接把json数据转换成Java对象的方法,但是,可以自己简单的封装一下。据说,json-lib这个工具可有
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值