java中json的学习笔记


在形形色色的java json教程中,感觉自己被深深的坑住了,不是包不对,就是各种方法undefined,活生生的被eclipse的红波浪刷屏了,所以决定自己亲身实践,来总结java json中常见的使用方法~

1.使用org.json.jar包

下载链接:http://download.csdn.net/detail/zhangjuncai19880509/2833133

(下载之后如果名字不对的话建议重命名成org.json.jar)

在eclipse下导入这个包,这个应该不用截图吧哈

1)JSONArray

顾名思义,这就是json数组嘛,长成这个样子的,以下的这个数组长度为1。

注意要转成json数组的字符串一定要是以[  ]开头结尾!

[
    {
        "entity": [
            [
                0,
                2,
                "product_name"
            ],
            [
                2,
                3,
                "job_title"
            ],
            [
                3,
                4,
                "person_name"
            ]
        ],
        "word": "成都",
        "商报",
        "记者",
        "姚永忠"
    ]
}
]

<span style="font-size:14px;"><span style="font-size:18px;">package com.qq;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

public class JsonExample1 {

	public static void main(String[] args) throws JSONException {
		//JSONArray	
		String json = "[{\"entity\": [[0, 2, \"product_name\"],[2, 3, \"job_title\"],[3, 4, \"person_name\"]],\"word\": [\"成都\", \"商报\", \"记者\", \"姚永忠\"]}]";
		JSONArray jsonArray = new JSONArray(json);
		int iSize = jsonArray.length();
		System.out.println(iSize);
		for (int i = 0; i < iSize; i++) 
		{
			//获取每一个JsonObject对象
			JSONObject jsonObj = jsonArray.getJSONObject(i);		
			//获取每一个对象中的值
			System.out.println(jsonObj.get("word"));
			System.out.println(jsonObj.get("entity"));	
		}
	}
}</span></span>
输出以下内容:

1
["成都","商报","记者","姚永忠"]
[[0,2,"product_name"],[2,3,"job_title"],[3,4,"person_name"]]

2)JSONObject

这是json对象,注意要转成json对象的字符串一定要是以{ }开头结尾!

<span style="font-size:14px;"><span style="font-size:18px;">package com.qq;

import org.json.JSONException;
import org.json.JSONObject;

public class JsonExample2 {

	public static void main(String[] args) throws JSONException {
		//JSONObject
		 String jsonMessage = "{\"key1\":\"apple\",\"key2\":\"orange\"}";	 
		 String value1 = null;	
		 String value2 = null;
		 //将字符串转换成jsonObject对象
		 JSONObject myJsonObject = new JSONObject(jsonMessage);
		   //获取对应的值
		 value1 = myJsonObject.getString("key1");
		 System.out.println(value1);
		 value2 = myJsonObject.getString("key2");
		 System.out.println(value2);
	}
}
		  
</span></span>
输出以下内容:

apple
orange

2.使用json-lib.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
下载地址见:http://download.csdn.net/detail/hedgehog8/4237121
1)JSONArray
<span style="font-size:14px;">package com.qq;

import net.sf.json.JSONArray;

public class JsonExample4 {
	public static void main(String[] args) {
		
		JSONArray jsonStrs = new JSONArray();
        jsonStrs.add(0, "cat");
        jsonStrs.add(1, "dog");
        jsonStrs.add(2, "bird");
        //不指定index就默认加在队尾
        jsonStrs.add("duck");
        //感觉add和element函数作用差不多
        jsonStrs.element("pig");
        //指定了数字index可以进行插入
        jsonStrs.add(4,5);
		 
        System.out.println(jsonStrs.toString());
        System.out.println(jsonStrs.get(0));
        System.out.println(jsonStrs.getString(0));
        System.out.println(jsonStrs.getInt(4));
        //以下语句因为返回的不是一个整型,会报错
        //System.out.println(jsonStrs.getInt(0));
	}
}</span>
输出以下内容:
["cat","dog","bird","duck",5,"pig"]
cat
cat
5

2)JSONObject
<span style="font-size:14px;">package com.qq;

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

public class JsonExample3 {
	
	public static void main(String[] args) {
		
		String json = "[{\"entity\": [[0, 2, \"product_name\"],[2, 3, \"job_title\"],[3, 4, \"person_name\"]],\"word\": [\"成都\", \"商报\", \"记者\", \"姚永忠\"]}]";
		//String 转化成 JSONArray
		JSONArray jsonArray = JSONArray.fromObject(json);
		//获取JSONArray中的元素
		System.out.println(jsonArray.get(0));
		
		//String 转化成 JSONObject
		JSONObject jsonObject = JSONObject.fromObject(jsonArray.get(0));
		//获取JSONObject中的元素
		System.out.println(jsonObject.get("entity"));
	}
}
</span>
输出以下内容:
{"entity":[[0,2,"product_name"],[2,3,"job_title"],[3,4,"person_name"]],"word":["成都","商报","记者","姚永忠"]}
[[0,2,"product_name"],[2,3,"job_title"],[3,4,"person_name"]]

(以后还会有不定时更新,错误的地方欢迎大家多多指正~谢谢)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值