论坛首页 Web前端技术论坛

JSON详细学习之JSONObject in JAVA

浏览 47010 次
精华帖 (0) :: 良好帖 (1) :: 新手帖 (19) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-12-24  

一、JAR包简介

      要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包:

      1.commons-lang.jar

      2.commons-beanutils.jar

      3.commons-collections.jar

      4.commons-logging.jar 

      5.ezmorph.jar

      6.json-lib-2.2.2-jdk15.jar

      

二、JSONObject对象使用

     JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转换的包。在本例中,我们将使用JSONObject类创建JSONObject对象,然后我们打印这些对象的值。为了使用JSONObject对象,我们要引入"net.sf.json"包。为了给对象添加元素,我们要使用put()方法。

 

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class JSONObjectSample {
	
	//创建JSONObject对象
	private static JSONObject createJSONObject(){
		JSONObject jsonObject = new JSONObject();
		jsonObject.put("name", "kevin");
		jsonObject.put("Max.score", new Integer(100));
		jsonObject.put("Min.score", new Integer(50));
		jsonObject.put("nickname", "picglet");
		return jsonObject;
	}
	public static void main(String[] args) {
		JSONObject jsonObject = JSONObjectSample.createJSONObject();
		//输出jsonobject对象
		System.out.println("jsonObject==>"+jsonObject);
		
		//判读输出对象的类型
		boolean isArray = jsonObject.isArray();
		boolean isEmpty = jsonObject.isEmpty();
		boolean isNullObject = jsonObject.isNullObject();
		System.out.println("isArray:"+isArray+" isEmpty:"+isEmpty+" isNullObject:"+isNullObject);
		
		//添加属性
		jsonObject.element("address", "swap lake");
		System.out.println("添加属性后的对象==>"+jsonObject);
		
		//返回一个JSONArray对象
		JSONArray jsonArray = new JSONArray();
		jsonArray.add(0, "this is a jsonArray value");
		jsonArray.add(1,"another jsonArray value");
		jsonObject.element("jsonArray", jsonArray);
		JSONArray array = jsonObject.getJSONArray("jsonArray");
		System.out.println("返回一个JSONArray对象:"+array);
		//添加JSONArray后的值
		//{"name":"kevin","Max.score":100,"Min.score":50,"nickname":"picglet","address":"swap lake",
		//"jsonArray":["this is a jsonArray value","another jsonArray value"]}
		System.out.println(jsonObject);
		
		//根据key返回一个字符串
		String jsonString = jsonObject.getString("name");
		System.out.println("jsonString==>"+jsonString);
	}
}

 

 得到JSONObject对象后我们就可以使用它的方法了,可以查看其API,我给出一个在线的API

 

    http://json-lib.sourceforge.net/apidocs/jdk15/index.html

  

JSONArray的方法测试可以类似进行

 

 

   发表时间:2009-12-27   最后修改:2009-12-27
楼主,GOOGLE有个完整而优雅的JSON包,叫GSON。
http://code.google.com/p/google-gson/
0 请登录后投票
   发表时间:2009-12-27  
thiner 写道
楼主,GOOGLE有个完整而优雅的JSON包,叫GSON。
http://code.google.com/p/google-gson/

thanks 
0 请登录后投票
   发表时间:2009-12-28  
我用的是FlexJSON,我一直再用
0 请登录后投票
   发表时间:2009-12-28  
我也用的flexjson
0 请登录后投票
   发表时间:2009-12-28  
http://pan-java.iteye.com/admin/blogs/484519
我之前写也过类似的工具.

不过经常写一些可以学到很多东西.

大家也不用评新手贴,这要很打击人了,起码别人学会了在工作运用自己的知识写工具解决问题.

0 请登录后投票
   发表时间:2009-12-29  
楼主有JSON的源代码没,最近正在写这个。
0 请登录后投票
   发表时间:2009-12-29  
lyy3323 写道
楼主有JSON的源代码没,最近正在写这个。

源码可以去官网down的啊
0 请登录后投票
   发表时间:2009-12-31  
貌似gson比json-lib的效率高很多呀
0 请登录后投票
   发表时间:2010-02-02  
dieslrae 写道
貌似gson比json-lib的效率高很多呀

怎么保证顺序啊?
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics