精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

鮮為人知的 jackson Pointer 語法,超好用!

開發(fā) 前端
Jackson JSON Pointer 語法非常簡單易用,Jackson 官網(wǎng)文檔改版之后這個文檔很難找到了。筆者從14年開始使用,并且將她融入到很多 mica 組建中。

一、語法

JSON Pointer 是一個包含零個或多個引用標(biāo)記的 Unicode 字符串,每個引用標(biāo)記以 “/” (%x2F) 字符為前綴。如果引用標(biāo)記包含 “~” (%x7E) 或 “/” (%x2F) 字符,則它們必須分別被編碼為 “~0” 和 “~1”。它的 ABNF 語法如下:

json-pointer = *( "/" reference-token )
reference-token = *( unescaped / escaped )
unescaped = %x00-2E / %x30-7D / %x7F-10FFFF
escaped = "~" ( "0" / "1" )

如果一個 JSON 指針值不符合這個語法,則屬于錯誤的條件。

二、語法示例

JSON Pointer 語法所有引號“"” (%x22)、反斜杠“\” (%x5C)和控制字符(%x00-1F)的實(shí)例必須被轉(zhuǎn)義。例如,給定以下JSON文檔

{
  "foo": ["bar", "baz"],
  "": 0,
  "a/b": 1,
  "c%d": 2,
  "e^f": 3,
  "g|h": 4,
  "i\\j": 5,
  "k\"l": 6,
  " ": 7,
  "m~n": 8
}

那么以下 JSON 字符串應(yīng)用標(biāo)記和對應(yīng)的值:

""           // 讀取整個文檔
"/foo"       ["bar", "baz"]
"/foo/0"    "bar" // 讀取數(shù)組、集合中的第0個元素
"/"          0
"/a~1b"      1
"/c%d"       2
"/e^f"       3
"/g|h"       4
"/i\\j"      5
"/k\"l"      6
"/ "         7
"/m~0n"      8

三、復(fù)雜 Json 示例

示例 json 文本(節(jié)選自筆者掘金用戶信息):

{
    "err_no": 0,
    "err_msg": "success",
    "data": {
        "user_name": "如夢技術(shù)",
        "description": "生活不止眼前的茍且,還有詩和遠(yuǎn)方的田野。",
        "blog_address": "https://www.dreamlu.net",
        "user_growth_info": {
            "user_id": 1591748566975837,
            "jpower": 4056,
            "jscore": 1208.1,
            "jpower_level": 4,
            "jscore_level": 5,
            "jscore_title": "先鋒掘友",
            "author_achievement_list": [],
            "vip_level": 1,
            "vip_title": "初學(xué)乍練",
            "jscore_next_level_score": 2000,
            "jscore_this_level_mini_score": 500,
            "vip_score": 0
        }
    }
}

需求是只需要獲取 “jscore_title” 字段,獲取這個值按照上文的語法我們的完整引用標(biāo)記為:/data/user_growth_info/jscore_title。筆者采用 mica 中的 mica-core 中的 Jsonutil作為 jackson 的輔助工具類(這應(yīng)該也是市面上最好用和最全的一個 jackson json 工具類)。示例 java 代碼:

// 讀取 json 為 JsonNode
JsonNode jsonNode = JsonUtil.readTree(json);
// 調(diào)用 at 方法,傳入 JSON Pointer 引用標(biāo)記
JsonNode titleNode = jsonNode.at("/data/user_growth_info/jscore_title");
// 讀取節(jié)點(diǎn)文本
String jsCoreTitle = titleNode.asText();
System.out.println(jsCoreTitle); // 先鋒掘友

注意:使用 JSON Pointer 語法獲取不存在的節(jié)點(diǎn)時(shí)也不會報(bào)錯,在使用 asText、asInt 等方法獲取節(jié)點(diǎn)的值時(shí)會默認(rèn)返回 null,當(dāng)然這些方法也都有個帶默認(rèn)值的方法,非常好用。另外我們也可以將某個節(jié)點(diǎn)轉(zhuǎn)換成 Java Bean,例如上面的 user_growth_info節(jié)點(diǎn),示例代碼如下:UserGrowthInfo Bean(使用 idea GsonFormatPlus 插件生成)

@Data
public class UserGrowthInfo {

    @JsonProperty("user_id")
    private Long userId;
    @JsonProperty("jpower")
    private Integer jpower;
    @JsonProperty("jscore")
    private Double jscore;
    @JsonProperty("jpower_level")
    private Integer jpowerLevel;
    @JsonProperty("jscore_level")
    private Integer jscoreLevel;
    @JsonProperty("jscore_title")
    private String jscoreTitle;
    @JsonProperty("author_achievement_list")
    private List<?> authorAchievementList;
    @JsonProperty("vip_level")
    private Integer vipLevel;
    @JsonProperty("vip_title")
    private String vipTitle;
    @JsonProperty("jscore_next_level_score")
    private Integer jscoreNextLevelScore;
    @JsonProperty("jscore_this_level_mini_score")
    private Integer jscoreThisLevelMiniScore;
    @JsonProperty("vip_score")
    private Integer vipScore;
}

讀取 json 并轉(zhuǎn)換成 UserGrowthInfo Bean:

// 讀取 json 為 JsonNode
JsonNode jsonNode = JsonUtil.readTree(json);
// 讀取 user_growth_info 節(jié)點(diǎn)
JsonNode userGrowthInfoNode = jsonNode.at("/data/user_growth_info");
// 轉(zhuǎn)換成 UserGrowthInfo bean
UserGrowthInfo userGrowthInfo = JsonUtil.treeToValue(userGrowthInfoNode, UserGrowthInfo.class);
System.out.println(userGrowthInfo);
// 輸出結(jié)果:UserGrowthInfo(userId=1591748566975837, jpower=4056, jscore=1208.1, jpowerLevel=4, 
// jscoreLevel=5, jscoreTitle=先鋒掘友, authorAchievementList=[], vipLevel=1, vipTitle=初學(xué)乍練, 
// jscoreNextLevelScore=2000, jscoreThisLevelMiniScore=500, vipScore=0)

四、總結(jié)

Jackson JSON Pointer 語法非常簡單易用,Jackson 官網(wǎng)文檔改版之后這個文檔很難找到了。筆者從14年開始使用,并且將她融入到很多 mica 組建中。例如使用 mica-http 來讀取我們想要的結(jié)果:

// 讀取 linkedin 郵箱
private String getUserEmail(String accessToken) {
    return HttpRequest.get("https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))")
            .addHeader("Host", "api.linkedin.com")
            .addHeader("Connection", "Keep-Alive")
            .addHeader("Authorization", "Bearer " + accessToken)
            .execute()
            .asJsonNode()
            .at("/elements/0/handle~0/emailAddress")
            .asText();
}

Jackson 還是非常好用的,希望此篇文章對大家有所幫助!更多精彩好文敬請關(guān)注我們!!!

責(zé)任編輯:武曉燕 來源: JAVA架構(gòu)日記
相關(guān)推薦

2010-01-07 10:05:51

IT顧問特質(zhì)

2011-05-03 13:13:52

編程PHPJava

2014-04-22 16:38:12

GitHubGitHub 使用技巧

2009-07-09 17:38:35

2022-05-30 09:01:13

CSS技巧前端

2009-09-14 09:45:20

Chrome谷歌操作系統(tǒng)

2019-10-08 16:24:33

Chrome瀏覽器

2014-07-29 14:25:43

Unix命令

2023-04-23 15:11:26

2015-08-18 10:57:52

機(jī)房制冷數(shù)據(jù)中心

2015-06-09 11:12:31

Swift語言Swift特性

2024-04-30 08:32:18

CSS元素網(wǎng)格

2017-11-08 14:55:16

Linux命令sudo

2018-07-20 09:01:39

2022-08-23 09:01:02

HTMLWeb

2019-12-12 20:49:05

JavaScript語言運(yùn)算符

2023-12-06 08:46:20

CSSFlex內(nèi)幕

2010-03-23 16:53:19

Visual Stud

2009-02-09 09:16:28

熱鍵自注銷漏洞

2024-05-20 13:02:30

Python編程開發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

久久国内精品自在自线400部| 欧美mv日韩| 色综合欧美在线视频区| 日本亚洲欧洲精品| 精品国产亚洲AV| 国产精品毛片| 麻豆成人在线看| 丝袜美腿中文字幕| 精品久久国产一区| 色www精品视频在线观看| 老司机av福利| 四虎在线免费看| 精品一区二区影视| 国产69久久精品成人| 婷婷伊人五月天| 伊人久久大香线蕉综合网蜜芽| 欧美美女一区二区在线观看| 欧美成人高潮一二区在线看| 在线观看免费网站黄| 成人短视频下载| 亚洲r级在线观看| 成人免费视频国产免费| 影音先锋中文字幕一区| 久久精品国产99国产精品澳门| 黄色短视频在线观看| 一区三区自拍| 欧美高清视频在线高清观看mv色露露十八 | 青青青国产在线视频| 男女免费观看在线爽爽爽视频| 91在线porny国产在线看| 国产精品偷伦一区二区 | 欧美中文字幕一区| 日韩欧美一区二| 亚洲妇熟xxxx妇色黄| 国产精品久久久久久久久免费相片 | 在线不卡国产精品| 大地资源二中文在线影视观看| 国产精品99久久免费| 精品视频1区2区3区| 免费在线观看的av网站| 草草在线视频| 亚洲一级不卡视频| 亚洲一区二区三区午夜| 91社区在线| 国产欧美日韩在线看| 精品一区二区三区自拍图片区| 成人久久精品人妻一区二区三区| 国产自产v一区二区三区c| 国产精品久久久久9999| 欧美精品韩国精品| 国产欧美三级| 国外成人在线直播| 日产电影一区二区三区| 99国产精品久久久久久久| 久久久久久久97| 日本少妇裸体做爰| 99久久夜色精品国产亚洲狼| 亚洲新声在线观看| 日本一级免费视频| 大色综合视频网站在线播放| 亚洲日韩第一页| 亚欧精品视频一区二区三区| 日韩综合在线| 在线色欧美三级视频| 久久久久久久久久久久久久久| 视频精品一区| 亚洲第一区中文字幕| 黄色录像a级片| 伊甸园亚洲一区| 中文字幕一区二区三区电影| 中文字幕求饶的少妇| 伊人久久大香线| 欧美激情视频在线| 日韩成人免费观看| 玖玖精品视频| 国产一区二区丝袜高跟鞋图片| 国产哺乳奶水91在线播放| 国产不卡免费视频| 欧美成ee人免费视频| 中文字幕日本在线观看| 亚洲精品成人a在线观看| 美国av在线播放| 久操av在线| 91福利视频在线| 性久久久久久久久久久久久久| aiai久久| 中国china体内裑精亚洲片| 黄色一级片中国| 亚洲在线网站| 91精品视频免费观看| 日本高清视频免费看| 国产欧美一区二区三区鸳鸯浴 | 永久免费毛片在线播放| 在线亚洲+欧美+日本专区| а 天堂 在线| 制服丝袜日韩| 久久亚洲一区二区三区四区五区高| 精品一区免费观看| 日日夜夜一区二区| 不卡一区二区三区视频| 毛片网站在线| 亚洲精品老司机| 欧美精品色婷婷五月综合| 99精品女人在线观看免费视频| 日韩www在线| 99久久99久久精品国产| 久久精品国语| 97免费资源站| 在线日本中文字幕| 亚洲成av人片一区二区梦乃| 国产成年人视频网站| 久久香蕉网站| 大胆欧美人体视频| 激情网站在线观看| 99久久伊人网影院| 最近免费观看高清韩国日本大全| 欧美黑人巨大xxxxx| 精品欧美久久久| 四虎影院中文字幕| 日本欧美一区二区| 欧美三级网色| 牛牛精品一区二区| 精品国产乱码久久久久久图片| 日韩在线一卡二卡| 日本va欧美va精品| 欧美亚州在线观看| 国产h片在线观看| 欧美成人精品福利| 午夜爽爽爽男女免费观看| 免费av成人在线| 欧美成人免费在线| 亚洲精品日产| 日韩经典中文字幕在线观看| 国产亚洲色婷婷久久99精品| 国产一区二区三区免费播放| 亚洲精品一品区二品区三品区| 欧美极品免费| 亚洲欧美视频在线| 中文字幕免费在线观看视频| kk眼镜猥琐国模调教系列一区二区 | 午夜日韩在线电影| 亚洲av无码一区东京热久久| 欧美一区不卡| 91久久国产综合久久蜜月精品| 麻豆av免费在线观看| 欧美三级中文字| 国产真人真事毛片视频| 免播放器亚洲一区| 伊人久久99| 成人免费91| 久久艳片www.17c.com| 99er热精品视频| 一区二区免费在线| 久久精品无码专区| 99精品视频免费观看| 狠狠爱一区二区三区| 是的av在线| 一区二区三区亚洲| 97超碰国产在线| 一区二区在线看| 88av在线播放| 久久国产福利| 香蕉久久免费影视| 成人短视频软件网站大全app| 久久国产精品免费视频| 亚洲国产视频一区二区三区| 五月天一区二区三区| 丰满少妇一区二区| 奇米777欧美一区二区| 亚洲AV无码成人精品一区| 欧美经典影片视频网站| 97热精品视频官网| 福利成人在线观看| 91精品国产入口| 亚洲 欧美 日韩 综合| 国产欧美一区二区三区在线老狼| 午夜av中文字幕| 亚洲精品社区| 性刺激综合网| 9l视频自拍九色9l视频成人| 日本中文字幕久久看| 黄色网在线免费看| 日韩av中文在线| 亚洲一区二区视频在线播放| 亚洲一二三四在线| 亚洲精品91在线| 国产乱国产乱300精品| 鲁一鲁一鲁一鲁一澡| 日韩欧美大片| 精品在线一区| 国产日韩欧美中文在线| 欧美一级电影久久| 精品视频在线一区二区| 亚洲国产另类 国产精品国产免费| 亚洲熟女综合色一区二区三区| 中文字幕日韩欧美一区二区三区| 国产一级黄色录像| 精品综合久久久久久8888| 青青青青草视频| 97人人精品| 欧美日韩日本网| 久久天堂久久| 国产精品久久色| av手机在线观看| 久久精品国产亚洲精品2020| 美女欧美视频在线观看免费| 欧美成人精精品一区二区频| 一区二区小视频| 黑人巨大精品欧美一区免费视频 | 国产精品久久久免费| 黄色a级在线观看| 精品国产乱码久久久久久1区2匹| 国产精品久久久久久久免费大片| 欧美成人黄色| 日韩av免费看| 女海盗2成人h版中文字幕| 欧美俄罗斯乱妇| 日本www在线观看| 国产亚洲欧美日韩精品| 三级在线视频| 亚洲精品99久久久久| 国产高中女学生第一次| 欧美日韩一级二级三级| 日韩在线 中文字幕| 亚洲成国产人片在线观看| 自拍偷拍你懂的| 国产欧美日韩综合| 精品无码在线观看| 久久综合视频网| 在线免费观看a级片| 国产suv精品一区二区6| 一个人看的视频www| 精品一区精品二区高清| 天天综合网久久| 奇米影视一区二区三区| 亚洲一级免费观看| 日本怡春院一区二区| 北条麻妃av高潮尖叫在线观看| 亚洲专区欧美专区| 日韩av综合在线观看| 亚洲另类自拍| 欧美三级一级片| 在线一区欧美| 成人三级视频在线播放| 久久av一区| 国产免费999| 青青草一区二区三区| av在线无限看| 蜜桃视频在线一区| 国产精品嫩草影院8vv8| 国模娜娜一区二区三区| 黄色片子免费看| 国产**成人网毛片九色| 国产精品一区二区人妻喷水| 99久精品国产| 美女被到爽高潮视频| 国产女人aaa级久久久级| 少妇太紧太爽又黄又硬又爽小说| 欧美国产精品中文字幕| 一级性生活免费视频| 一区二区三区丝袜| 欧美亚韩一区二区三区| 色综合久久久久综合体| 一区两区小视频| 欧美一区二区三区在| 黄色a在线观看| 亚洲男人av在线| av网在线观看| 欧美大肥婆大肥bbbbb| 高清毛片在线观看| 国产精品久久久亚洲| 精品久久国产一区| 国产尤物91| 成人羞羞网站入口| 国产成人亚洲综合无码| 亚洲一区日韩在线| 天堂av2020| eeuss鲁片一区二区三区在线观看| 国产精品无码久久久久久| 国产精品国产三级国产普通话蜜臀 | 精品51国产黑色丝袜高跟鞋| 欧美高清在线视频观看不卡| 国模私拍一区二区国模曼安| 国产精品欧美亚洲777777| 3d动漫一区二区三区在线观看| 成人三级视频在线观看一区二区| 亚洲自拍电影| 日本美女爱爱视频| 久久精品中文| 99国产精品免费视频| 久久精品日产第一区二区三区高清版| 亚洲欧美卡通动漫| 欧美日韩国产一区在线| 91麻豆视频在线观看| 亚洲精品在线不卡| av网站在线免费看推荐| 日韩美女免费线视频| 91亚洲无吗| 亚洲午夜久久久影院伊人| 亚洲每日在线| 亚洲天堂一区二区在线观看| 久久免费看少妇高潮| 久操视频免费在线观看| 欧美视频一区二区三区在线观看| 香蕉视频国产在线| 久久国产精品偷| av成人在线观看| 久久精品一区二区三区不卡免费视频| 91精品国产自产拍在线观看蜜| 熟女人妇 成熟妇女系列视频| 国产馆精品极品| 亚洲AV成人无码网站天堂久久| 黑人巨大精品欧美一区二区免费| 国产xxxx在线观看| 久久九九国产精品怡红院| 九九热线视频只有这里最精品| 国产麻豆一区二区三区在线观看| 99久久夜色精品国产亚洲1000部| 国产免费视频传媒| 久久伊人蜜桃av一区二区| 国产午夜免费视频| 欧美一级电影网站| 久久精品视频免费看| 国产男人精品视频| 国产不卡av一区二区| 欧美性久久久久| 成人丝袜视频网| 麻豆一区二区三区精品视频| 欧美一区二区三区系列电影| 免费在线看黄网站| 国产精品视频网站| 日韩精品午夜| 久久国产精品国产精品| 欧美—级在线免费片| 日韩美女视频网站| 亚洲激情成人网| 天堂8中文在线最新版在线| 国产亚洲一区在线播放| 亚洲精品1区| 国产黄色三级网站| 欧美日韩激情网| 日本中文字幕一区二区有码在线| 91av在线免费观看视频| 日韩av黄色在线| 欧美在线观看成人| 2024国产精品视频| 天干夜夜爽爽日日日日| 亚洲天堂网站在线观看视频| 日韩在线短视频| 亚洲精品一区二区三区四区五区 | 国产美女福利在线| 91精品国产高清久久久久久91裸体 | 伊人久久大香线蕉av一区二区| 日韩电影免费观| 一本色道久久99精品综合| 精品一区二区三区免费毛片爱| 日本黄色录像视频| 日韩免费电影一区| 波多野一区二区| 日韩视频在线播放| 精品一区精品二区高清| 国产一级av毛片| 精品亚洲夜色av98在线观看| 怡红院成人在线| 色撸撸在线观看| 成人av电影在线网| 中文字幕高清在线免费播放| 精品国产一区二区三区久久狼黑人 | 精品电影一区二区三区| 色资源二区在线视频| 日本一区二区三区免费观看| 久久国内精品自在自线400部| 青娱乐国产精品| 亚洲欧美激情一区| 亚洲国产天堂| 欧美成人免费在线观看视频| 国产亚洲一二三区| 99精品视频在线播放免费| 97在线视频一区| 日韩欧美视频在线播放| 男女性杂交内射妇女bbwxz| 色婷婷久久久亚洲一区二区三区| 日本中文字幕在线看| 国内精品**久久毛片app| 奇米精品一区二区三区四区| 精品少妇久久久| 国产亚洲精品成人av久久ww| 亚洲一区二区三区日本久久九| 97视频在线免费播放| 成人欧美一区二区三区| 无码精品人妻一区二区三区影院| 国产精品中文字幕在线| 亚洲区综合中文字幕日日| 日本高清www| 日韩精品一区国产麻豆| 日本欧美韩国| 久久久久免费看黄a片app| 亚洲色图都市小说| 日本一二三区在线视频| 成人欧美一区二区三区在线观看|