本文目錄一覽:
- 1、如何java解析json數組
- 2、java 解析json字符串格式 [{}]
- 3、java解析json格式文件
- 4、java 解析json字符串
- 5、用java解析json 格式的字符.該如何解析
- 6、java中Json怎樣解析數據?
如何java解析json數組
工具/原料
安裝有eclipse軟件的電腦一台
方法/步驟
1
首先我們在eclipse中創建一個java工程,在java工程中創建一個HelloWorld的類,在這個java的入口程序中,我們來創建一個json字符串,並且打印出來,如下圖:
2
將我們剛剛創建的json字符串打印出來如下所示,可以看出這個json包含了一個大json對象,大json對象裏面又包含一個json數組,一個數組裏面又包含三個json對象,如下圖:
3
在java中我們要解析json數組必須藉助第三方包,所以這裡我們加載一下第三方包,首先我們將鼠標移動到項目名稱上面去,然後右鍵召喚出右鍵快捷菜單,然後依次點擊Build Path-Configure Build Paht…,如下圖:
4
然後我們按照圖中紅色方框所示點擊Libraries,然後點擊Add Library…,如下圖所示:
5
然後我們繼續按照圖中所示點擊User Library,然後點擊Next,如下圖:
6
然後我們繼續按照圖中紅色方框所示點擊User Libraries…,如下圖:
7
然後我們點擊New…,來開始創建我們自己的libraries,如下圖:
8
然後我們輸入我們自己jar庫的名字,這裡我使用了jsonjar作為我們的名字,如下圖:
9
接下來為我們的jar庫添加jar包,我們按照下圖中紅色方框所示點擊「Add External JARs」,如下圖:
10
我們添加json相關的jar包,這裡涉及json的第三方包主要包括這七個,所以我們把這七個包都引入到我們自己的jar庫中去,如下圖:
11
返回到User Libraries中發現,我們已經引入了所有的jar包,如下圖:
我們按照下圖中紅色方框所示畫勾,然後點擊finish,如下圖:
然後我們按照圖中紅色邊框所示點擊Apply,然後點擊OK,如下圖:
回到我們的工程中,從工程目錄中我們可以看到,我們已經添加了自己的名字為jsonjar的jar庫,如下圖:
接下來我們回到程序中,在頭部添加「import net.sf.json.JSONArray;import net.sf.json.JSONObject;」這兩句代碼,這兩句表示引入了解析json的對象和數組的包,如下圖:
然後我們通過代碼「JSONObject.fromObject(json_array)」來將我們之前創建的json字符串轉換成json對象,並且通過鍵值對的方式打印出json對象名字為「employees」的值,如下圖:
打印出的名字為「employees」的json對象的值如下圖是一個數組字符串,如下圖:
接下來我們通過代碼「jsonobj.getJSONArray(“employees”)」來將獲取的數組字符串轉變成為json組數,如下圖:
並且我們打印出json數組的長度,可見程序計算的json數組的長度和我們實際的數組長度相一致,如下圖:
接下來我們通過一個for循環將我們獲取的json數組中的值依次取出來,由於數組中又包含3個對象,我們又需要將3個對象使用代碼「JSONObject.fromObject(jsonarr.get(i));」將得到的對象字符串變成對象然後再取出來,如下圖:
最後,我們將json數組的所有內容都展示到控制台,這樣我們就可以使用java通過第三方json包來解析json數組了,如下圖:
java 解析json字符串格式 [{}]
你在哪裡解析
1、Java類裏面:JSONObject jsonObject = new JSONObject(str);
然後用Iterator迭代器遍歷取值,建議用反射機制解析到封裝好的對象中
2、javascript:JSON.parse(str);
ie8(兼容模式),ie7和ie6沒有JSON對象,不過提供了一個json.js,這樣ie8(兼容模式),ie7和ie6就可以支持JSON對象以及其stringify()和parse()方法;你可以在上獲取到這個js,一般現在用json2.js。
ie8(兼容模式),ie7和ie6可以使用eval()將字符串轉為JSON對象,
var c='{“name”:”Mike”,”sex”:”女”,”age”:”29″}’;
var cToObj=eval(“(“+str+”)”);
java解析json格式文件
/*簡單的回了複雜的也就會了*/
/*其實,json實際上是用來統一數據格式,所以,在使用它時,肯定要設計一下格式,
當然,所謂的複雜,只是嵌套的層次深了。。。解析方式並沒有變。。個人理解,如果覺得有價值就看,沒價值,就當沒看見吧。。
呵呵。。
*/
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import net.sf.ezmorph.bean.MorphDynaBean;
import net.sf.json.JSONArray;
import net.sf.json.JSONSerializer;
/**
* @author John
*
*/
public class JSONDemo {
public static final String PREFIX = “index_”;
/**
* @param args
*/
public static void main(String[] args) {
Map map = new HashMap();
String str =”[{‘status’: 5,’remarks’: ‘\\xe6\\xa3\\x80\\xe6\\xb5\\x8b\\xe5\\xb7\\xb2\\xe7\\xbb\\x8f\\xe5\\xae\\x8c\\xe6\\x88\\x90′,’session’: \”(1, ‘9.2.0.1.0’, ‘192.168.177.115’, 1521L, ‘ora9′, 1, ”)\”,’vuls’: [\”(‘612300200001’, 1, ”, [{‘values’: ‘[‘version’]’, ‘type’: 0}, {‘values’: \'[‘%E7%89%88%E6%9C%AC%E5%8F%B7′]\’, ‘type’: 1}])\”,\”(‘612300200002’, 1, ”, [{‘values’: ‘[‘version’]’, ‘type’: 0},{‘values’: ‘[‘%E7%89%88%E6%9C%AC%E5%8F%B7′]’, ‘type’: 1},{‘values’: ‘[‘9.2.0.1.0′]’, ‘type’: 2}])\”], ‘endTime’:123}, 1L, ‘\\xe6\\xb5\\x8b\\xe8\\xaf\\x95\\xe6\\x89\\xab\\xe6\\x8f\\x8f\\xe4\\xbb\\xbb\\xe5\\x8a\\xa1’]”;
System.out.println(“json格式字符串–“+str);
JSONArray array = JSONArray.fromObject(str);
System.out.println(“json格式字符串構造json數組元素的個數–“+array.size());
ArrayList list = (ArrayList) JSONSerializer.toJava(array);
int i = 0;
for (Object obj : list) {
map.put(PREFIX+(i++), obj);
System.out.println(“第”+i+”對象–“+obj);
}
//解析第0個位置
Map bd = new HashMap();
MorphDynaBean bean = (MorphDynaBean) map.get(PREFIX+0);
bd.put(“session”, bean.get(“session”));
bd.put(“status”, bean.get(“status”));
bd.put(“remarks”, bean.get(“remarks”));
bd.put(“vuls”, bean.get(“vuls”));
bd.put(“endTime”, bean.get(“endTime”));
Iterator iter = bd.keySet().iterator();
while (iter.hasNext()){
Object key = iter.next();
Object value = bd.get(key);
System.out.println(“MorphDynaBean對象–key=”+key+”,value=”+value);
}
//解析vuls
ArrayList vuls = (ArrayList) bd.get(“vuls”);
Map vl = new HashMap();
int j = 0;
for (Object obj : vuls) {
vl.put(PREFIX+(j++), obj);
System.out.println(“解析vuls的第”+i+”對象–“+obj);
}
}
}
/*
* json格式字符串–[{‘status’: 5,’remarks’: ‘\xe6\xa3\x80\xe6\xb5\x8b\xe5\xb7\xb2\xe7\xbb\x8f\xe5\xae\x8c\xe6\x88\x90′,’session’: “(1, ‘9.2.0.1.0’, ‘192.168.177.115’, 1521L, ‘ora9′, 1, ”)”,’vuls’: [“(‘612300200001’, 1, ”, [{‘values’: ‘[‘version’]’, ‘type’: 0}, {‘values’: ‘[‘%E7%89%88%E6%9C%AC%E5%8F%B7′]’, ‘type’: 1}])”,”(‘612300200002’, 1, ”, [{‘values’: ‘[‘version’]’, ‘type’: 0},{‘values’: ‘[‘%E7%89%88%E6%9C%AC%E5%8F%B7′]’, ‘type’: 1},{‘values’: ‘[‘9.2.0.1.0′]’, ‘type’: 2}])”], ‘endTime’:123}, 1L, ‘\xe6\xb5\x8b\xe8\xaf\x95\xe6\x89\xab\xe6\x8f\x8f\xe4\xbb\xbb\xe5\x8a\xa1’]
json格式字符串構造json數組元素的個數–3
第1對象–net.sf.ezmorph.bean.MorphDynaBean@94948a[
{session=(1, ‘9.2.0.1.0’, ‘192.168.177.115’, 1521L, ‘ora9’, 1, ”), status=5, remarks=???????·??????????, vuls=[(‘612300200001’, 1, ”, [{‘values’: ‘[‘version’]’, ‘type’: 0}, {‘values’: ‘[‘%E7%89%88%E6%9C%AC%E5%8F%B7′]’, ‘type’: 1}]), (‘612300200002’, 1, ”, [{‘values’: ‘[‘version’]’, ‘type’: 0},{‘values’: ‘[‘%E7%89%88%E6%9C%AC%E5%8F%B7′]’, ‘type’: 1},{‘values’: ‘[‘9.2.0.1.0′]’, ‘type’: 2}])], endTime=123}
]
第2對象–1L
第3對象–???è??????????????
MorphDynaBean對象–key=status,value=5
MorphDynaBean對象–key=session,value=(1, ‘9.2.0.1.0’, ‘192.168.177.115’, 1521L, ‘ora9’, 1, ”)
MorphDynaBean對象–key=remarks,value=???????·??????????
MorphDynaBean對象–key=vuls,value=[(‘612300200001’, 1, ”, [{‘values’: ‘[‘version’]’, ‘type’: 0}, {‘values’: ‘[‘%E7%89%88%E6%9C%AC%E5%8F%B7′]’, ‘type’: 1}]), (‘612300200002’, 1, ”, [{‘values’: ‘[‘version’]’, ‘type’: 0},{‘values’: ‘[‘%E7%89%88%E6%9C%AC%E5%8F%B7′]’, ‘type’: 1},{‘values’: ‘[‘9.2.0.1.0′]’, ‘type’: 2}])]
MorphDynaBean對象–key=endTime,value=123
解析vuls的第3對象–(‘612300200001’, 1, ”, [{‘values’: ‘[‘version’]’, ‘type’: 0}, {‘values’: ‘[‘%E7%89%88%E6%9C%AC%E5%8F%B7′]’, ‘type’: 1}])
解析vuls的第3對象–(‘612300200002’, 1, ”, [{‘values’: ‘[‘version’]’, ‘type’: 0},{‘values’: ‘[‘%E7%89%88%E6%9C%AC%E5%8F%B7′]’, ‘type’: 1},{‘values’: ‘[‘9.2.0.1.0′]’, ‘type’: 2}])
*/
java 解析json字符串
你好:
後台拆分json
private String interactPrizeAll; //json 使用字符串來接收
方法中的代碼:
Gson gson = new Gson();
InteractPrize interactPrize =new InteractPrize();
//gson用泛型 轉List數組 多個對象
ListInteractPrize interactPrizeList = gson.fromJson(interactPrizeAll, new TypeTokenListInteractPrize(){}.getType()); //TypeToken,它是gson提供的數據類型轉換器,可以支持各種數據集合類型轉換
for(int i = 0; i interactPrizeList.size(); i++)
{
interactPrize = interactPrizeList.get(i);//獲取每一個對象
}
這一種方法是轉單個對象時使用的
//gson 轉對象 單個對象
//interactPrize = gson.fromJso(interactPrizeAll,InteractPrize.class);
這個方法是我後台拼的json往前台傳的方法
jsonStrAll.append(“{“+ “\””+”catid”+”\””+”:”+”\””+c.getCatid()+”\””+”,”+”\””+”catname”+”\””+”:”+”\””+c.getCatname()+”\””+”,”+ “\””+”catdesc”+”\””+”:”+”\””+c.getCatdesc()+”\””+”,”+”\””+”showinnav”+”\””+”:”+”\””+c.getShowinnav()+”\””+”,”+”\””+”sortorder”+”\””+”:”+”\””+c.getSortorder()+”\””+”,”+”level:”+”\””+”0″+”\””+”,parent:”+”\””+”0″+”\””+”,isLeaf:true,expanded:false,”+”loaded:true},”);
你自己挑着用吧!
用java解析json 格式的字符.該如何解析
String temp=”{‘data’:{‘a’:[{‘b1′:’bb1′,’c1′:’cc1’},{‘b2′:’bb2′,’c2′:’cc2’}]}}”;
JSONObject jodata =JSONObject.fromObject(temp);
JSONObject joa =JSONObject.fromObject(jodata.get(“data”).toString());
JSONArray ja=JSONArray.fromObject(joa.get(“a”));
for(int i=0;ija.size();i++){
JSONObject o=ja.getJSONObject(i);
if(o.get(“b1”)!=null){
System.out.println(o.get(“b1”));
}
if(o.get(“c1”)!=null){
System.out.println(o.get(“c1”));
}
if(o.get(“b2”)!=null){
System.out.println(o.get(“b2”));
}
if(o.get(“c2”)!=null){
System.out.println(o.get(“c2”));
}
}
}
註:要包含兩個jar包ezmorph-1.0.6.jar和json-lib-2.2.2-jdk15.jar,jar包在附件中
java中Json怎樣解析數據?
你這個JSON格式,就是數組裏面放數組,所以是,取JSON對象》取JSON數組data》取JSON數組。
import java.util.ArrayList;import java.util.Iterator;import net.sf.json.*;public class MainClass {/*** @param args*/public static void main(String[] args) {JSONObject jsonObj = JSONObject.fromObject(JsonData.getData());JSONArray jsonArr = jsonObj.getJSONArray(“data”);IteratorJSONArray itr = jsonArr.iterator();JSONArray temp;while(itr.hasNext()) {temp = itr.next();System.out.println(“===========Each JSONArray=========”);for(int i = 0; itemp.size(); i++) {System.out.println(temp.get(i));}}}private static class JsonData {private static String getData() {return “{\”data\”:[[5000235,2,3441,8,17,\”北京測試\”,\”10000101111\”,\”\”,\”\”,\”100001\”,\”\”,\”2011-09-23 17:20:07\”,18,\”vhcDefaultPwd\”,1,0,\”2011-09-20 00:00:00\”,12,0,380,\”測試\”,213,1,0,0,0,0,0,\”2012-11-05 14:35:23\”,\”\”],[5000236,27,3442,10,17,\”北京測試2\”,\”1230000\”,\”\”,\”\”,\”2010920002\”,\”111111\”,\”2011-09-23 17:20:08\”,18,\”vhcDefaultPwd\”,1,0,\”2011-09-20 00:00:00\”,12,0,380,\”測試2\”,213,1,0,0,0,0,0,\”2012-11-05 14:35:23\”,\”\”]]}”;}}}
原創文章,作者:GAECM,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/316776.html