在形形色色的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包:
- commons-lang.jar
- commons-beanutils.jar
- commons-collections.jar
- commons-logging.jar
- ezmorph.jar
- json-lib-2.2.2-jdk15.jar
<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
cat
5
<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>
输出以下内容:
[[0,2,"product_name"],[2,3,"job_title"],[3,4,"person_name"]]