在Java中處理JSON數據時,通常會使用一些第三方庫來簡化操作。例如,使用net.sf.json庫可以方便地將JSON字元串轉換為Java對象。下面是一個簡單的示例,展示了如何將一個包含用戶信息的JSON字元串轉換為Java對象,並從中提取數據。
首先,我們定義一個包含用戶信息的JSON字元串。這個字元串中包含了用戶ID和姓名的信息。接著,我們需要導入必要的庫,以便能夠解析這個JSON字元串。以下是具體的代碼示例:
java
import net.sf.json.JSONObject;
public class TestJson {
static String json_str = "{\"total\":920,\"data\":[{\"ID\":\"634\",\"Name\":\"於東\"},{\"ID\":\"822\",\"Name\":\"於禕\"},{\"ID\":\"782\",\"Name\":\"於燕\"},{\"ID\":\"636\",\"Name\":\"於玲\"},{\"ID\":\"841\",\"Name\":\"於浩\"},{\"ID\":\"383\",\"Name\":\"於娟\"}]};"
public static void main(String[] args) {
// TODO Auto-generated method stub
JSONObject jsonObject = JSONObject.fromObject(json_str);
System.out.println(jsonObject.get("total"));
}
}
在這個示例中,我們首先定義了一個包含用戶數據的JSON字元串。然後,我們使用`JSONObject.fromObject`方法將這個字元串轉換為一個`JSONObject`對象。通過調用`get`方法,我們可以從這個對象中獲取`total`欄位的值,該欄位表示用戶數據的總數。
這個示例展示了如何在Java中處理JSON數據的基本方法。在實際應用中,你可能會需要進一步處理`data`欄位中的數據,例如遍歷用戶列表或提取特定用戶的信息。此外,還可以使用其他庫,如Jackson或Gson,來實現更復雜的JSON處理需求。
值得注意的是,雖然這里展示的代碼使用了`net.sf.json`庫,但在實際開發中,推薦使用更現代和更活躍的庫,如Jackson或Gson。這些庫提供了更多的功能和更好的性能。
② java中怎樣解析webservice返回的json數據
json(javascript Object Notation 的縮寫)是一個基於文本的,人類可讀的,開放標準的輕量級數據交換格式。它繼承了javascript中的簡單數據結構和相關數組對象,稱為對象。不管它 和javascript的瓜葛,json是語言獨立的,幾乎所有編程語言都能解析它。
json以鍵值對來表示數據。每個值被一個鍵名字引用(鍵名字是個string)。如果你想以json表示人名,他們的名字將被"name"鍵引用,如下:
「name」 : 「James」
所以json用一種容易被應用程序傳遞的方式表現數據,非常完美。
所以當從webservice解析數據時,你要做的第一件事就是搞清楚你的模型。下面我們會分析webservice的響應數據,搞清楚哪些bit代表對象,對象數組,對象所屬的欄位,等等。
但是json可以表示哪些類型的數據呢?
1.對象是大括弧內的所有東東
2.字元串用雙引號
3.數字只是簡單的顯示,如 12345
4. 數組由中括弧包圍
5.布爾值從'true'和'false'獲得,沒有引號
6.null值由'null'表示,沒有引號
③ 在java中從WebService調用的數據怎麼解析json
importorg.json.JSONObject;
try{
JSONObjectjson=newJSONObject();
inttotalProperty=json.getInt("totalProperty");
JSONObjectroot=json.getJSONObject("root");
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
要取什麼值就用getXXX的方法來取
④ java解析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}])
*/