一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Jackson第四篇【Find方法尋值】

 BlazerOfIT 2012-04-29

第二章寫了一種自己寫的方法來查找json字符串中的值,其實(shí)jackson還提供一個(gè)find方法來查找json字符串中的值。今天我們一起來看看這個(gè)方法的使用……

按照慣例我先貼上代碼

  1. /** 
  2.  * 具體的類我就不貼出來浪費(fèi)空間了 
  3.  *  
  4.  * @param args 
  5.  * @throws Exception 
  6.  */  
  7. public static void main(String[] args) throws Exception {  
  8.     // 準(zhǔn)備數(shù)據(jù)   
  9.     List<Person> pers = new ArrayList<Person>();  
  10.     List<Person> childs = new ArrayList<Person>();  
  11.     Person p = new Person("張三"46);  
  12.     childs.add(new Person("小張三1"20));  
  13.     childs.add(new Person("小張三2"17));  
  14.     p.setChilds(childs);  
  15.     pers.add(p);  
  16.     p = new Person("李四"29);  
  17.     childs = new ArrayList<Person>();  
  18.     childs.add(new Person("小李四1"20));  
  19.     p.setChilds(childs);  
  20.     pers.add(p);  
  21.     p = new Person("王二麻子"23);  
  22.     pers.add(p);  
  23.     TestVo vo = new TestVo(null, pers);  
  24.     ObjectMapper mapper = JsonProcessUtil.getMapperInstance(false);  
  25.     String voJson = JsonProcessUtil.toJson(vo);  
  26.     JsonNode node = mapper.readTree(voJson);  
  27.     getValueByFind(node, "age");  
  28.     getFirstValueByFind(node, "age");  
  29.   
  30. }  


 

哈哈,這樣寫是不是比第二篇里面的方便多了?但是有個(gè)缺點(diǎn)啊,不能指定路徑。也就是說它會(huì)把當(dāng)前json字符串中的所有匹配屬性的值都取出來,如果你沒有指定路徑的要求 這種方法無疑很方便。

好了貼上兩個(gè)方法的代碼……

  1. /** 
  2.  * 使用find的方法從實(shí)體中取出所有匹配的值 
  3.  *  
  4.  * @param vo 
  5.  * @param path 
  6.  * @return 
  7.  */  
  8. public static List<String> getValueByFind(JsonNode node, String path) throws Exception {  
  9.     List<String> values = new ArrayList<String>();  
  10.     /* 
  11.      * values = node.findValuesAsText(path); 這里提供兩種方法 一種是只填寫path 
  12.      * 它會(huì)返回List<String>,另外一種就是下面用的 它會(huì)直接把找到的value填到你傳入的集合中 
  13.      */  
  14.     node.findValuesAsText(path, values);  
  15.     System.out.println(Arrays.toString(values.toArray()));  
  16.     return values;  
  17. }  


 

  1. /** 
  2.  * 查找當(dāng)前Node中第一個(gè)匹配的值 
  3.  *  
  4.  * @param node 
  5.  * @param path 
  6.  * @return 
  7.  * @throws Exception 
  8.  */  
  9. public static int getFirstValueByFind(JsonNode node, String path) throws Exception {  
  10.     /* 
  11.      * 注意這點(diǎn)不能使用getTextValue()方法,因?yàn)檎业降闹禐镮nt類型的所以使用getTextValue是查不到值的。 
  12.      * 不過如果想返回String字符串可以使用asText()方法。這里使用asInt是為了看到其實(shí)JackSon是可以直接返回相應(yīng)類型的值的。 
  13.      */  
  14.     int value = node.findValue(path).asInt();  
  15.     System.out.println(value);  
  16.     return value;  
  17. }  


 

其實(shí)Jackson中的JsonNode還有許多其它方法,都可以根據(jù)名字來看出它的含義??梢試L試著進(jìn)行學(xué)習(xí)……

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    大伊香蕉一区二区三区| 国产欧美日韩精品一区二区| 黄片三级免费在线观看| 中文字幕一区二区免费| 国产免费一区二区三区av大片| 国产成人综合亚洲欧美日韩| 中文字幕日韩精品人一妻| 中文字字幕在线中文乱码二区| 激情内射亚洲一区二区三区| 国产免费人成视频尤物| 东北女人的逼操的舒服吗| 老司机精品在线你懂的| 偷拍洗澡一区二区三区| 高清免费在线不卡视频| 国产一区二区三区香蕉av| 亚洲中文字幕视频在线播放| 国产又黄又爽又粗视频在线| 免费一区二区三区少妇| 丝袜美女诱惑在线观看| 色老汉在线视频免费亚欧| 九七人妻一区二区三区| 日本熟女中文字幕一区| 免费在线观看激情小视频| 国产精品尹人香蕉综合网| 成人精品一级特黄大片| 亚洲熟女乱色一区二区三区| 久久精品国产在热久久| 国产精品二区三区免费播放心| 欧美日韩在线第一页日韩| 美女极度色诱视频在线观看| 国产丝袜极品黑色高跟鞋| 欧美一区二区在线日韩| 国产毛片对白精品看片| 91欧美日韩一区人妻少妇| 丝袜av一区二区三区四区五区 | 欧美日韩一区二区午夜| 久久亚洲午夜精品毛片| 欧美一级特黄特色大色大片| 中日韩美女黄色一级片| 超薄肉色丝袜脚一区二区| 国产又大又硬又粗又黄|