亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java如何獲取JSON中某個(gè)對(duì)象的值

 更新時(shí)間:2022年06月15日 15:11:08   作者:林超男  
這篇文章主要介紹了Java如何獲取JSON中某個(gè)對(duì)象的值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Java獲取JSON中某個(gè)對(duì)象的值

public class ChangeJson {
? ? public static String getString(String data, String result) ?{
? ? ? ? JSONObject jsonObject = null;
? ? ? ? try {
? ? ? ? ? ? jsonObject = new JSONObject(data);
? ? ? ? } catch (JSONException e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? }
? ? ? ? return jsonObject.optString(result, null);
? ? }
}

使用方式

現(xiàn)在String result中有如下的JSON串,要取得deptCode

{
? "status": 0,
? "data": {
? ? "deptId": 76,
? ? "deptCode": "101030000",
? ? "deptName": "成都工務(wù)段",
? ? "dirDeptCode": "100000000",
? ? "deptLevel": 2,
? ? "defaultRoleId": 1,
? ? "createAt": "2021-02-25 02:18:51",
? ? "updateAt": "2021-03-03 09:09:35",
? ? "defaultRoleName": "系統(tǒng)超級(jí)管理員"
? }
}
//獲取data
String data = ChangeJson.getString(result, "data");
//獲取deptCode
String deptCode= ChangeJson.getString(data , "deptCode");

Java正則表達(dá)式-獲取json某個(gè)屬性值

處理數(shù)據(jù)的時(shí)候,要匹配json數(shù)據(jù)格式的字符串某個(gè)屬性的值

json數(shù)據(jù)格式: {"flow_name":"paramName"}

要獲取到 flow_name屬性的值: paramName

要怎么處理呢?

語(yǔ)法

  • [abc]:表示字母abc中的任意一個(gè)
  • \w:除了([0-9a-zA-Z_])還包含了希臘字母,俄文的字母等;
  • \d:匹配數(shù)字

數(shù)量控制符

  • ? 表示1個(gè)或0個(gè)。換句話說,表示要不然沒有,要不然只有1個(gè)
  • + 表示1個(gè)或多個(gè)

匹配

處理思路:

{"flow_name":"paramName"}

正則表達(dá)式怎么寫? 匹配的是字符(數(shù)字,大小寫和下劃線的組合)

flow_name 是已知的,要匹配 ":"paramName" 這部分的內(nèi)容。

String patternStr = keyField+"\":\"([0-9a-zA-Z_]+)?\"";

代碼

public static void main(String[] args) {
    String info = "[{\"SYNC_930000003690\":{\"finalSYSTEMNAME\":\"PXY-CPCP配置中心\",\"P_REQUEST_ID\":\"585471439551123454\",\"finalSYSTEMTYPE\":\"BSS-PXY\",\"finalDeveloperName\":\"\",\"finaltaxtCost\":\"\",\"finalworkRemark\":\"\",\"formId\":930000003690,\"REQUEST_ID\":\"A585545039142506496\",\"finalSuplIptDays\":\"22\"}},{\"SYNC_930000003690\":{\"finalSYSTEMNAME\":\"PXY-CPCP配置中心\",\"P_REQUEST_ID\":\"585471439551123455\",\"finalSYSTEMTYPE\":\"BSS-PXY\",\"finalDeveloperName\":\"\",\"finaltaxtCost\":\"\",\"finalworkRemark\":\"\",\"formId\":930000003694,\"REQUEST_ID\":\"B585545039142506496\",\"finalSuplIptDays\":\"44\"}},{\"SYNC_930000003690\":{\"finalSYSTEMNAME\":\"PXY-CPCP配置中心\",\"P_REQUEST_ID\":\"585471439551123456\",\"finalSYSTEMTYPE\":\"BSS-PXY\",\"finalDeveloperName\":\"\",\"finaltaxtCost\":\"\",\"formId\":930000003692,\"finalworkRemark\":\"\",\"REQUEST_ID\":\"C585545039142506496\",\"finalSuplIptDays\":\"55\"}}]";
    String keyField = "P_REQUEST_ID";
    System.out.println("=====    match    "+ keyField + " =========");
    //  \w : 數(shù)字,字母 ,下劃線 0-9 a-z A-Z _
    String patternStr = keyField+"\":\"([0-9a-zA-Z_]+)?\"";
    matchJsonValue(info,patternStr);
 
    keyField = "formId";
    System.out.println("=====    match    "+ keyField + " =========");
    patternStr = keyField+"\":(\\d+)?";
    matchJsonValue(info,patternStr);
}
 
/**
 * 正則表達(dá)式 查找匹配json字符串對(duì)應(yīng)屬性的值
 * @param sourcStr 字符串
 * @param patternStr 正則表達(dá)式
 * @return 字符集
 */
public static List<String> matchJsonValue(String sourcStr, String patternStr) {
    List<String> aimList = new ArrayList<>();
    Pattern pattern = Pattern.compile(patternStr);
    Matcher matcher = pattern.matcher(sourcStr);
    while (matcher.find()) {
        System.out.println("group all: " + matcher.group(0));
        System.out.println("aim index: " + matcher.group(NumberUtils.INTEGER_ONE));
        aimList.add(matcher.group(NumberUtils.INTEGER_ONE));
    }
    return aimList;
}

結(jié)果:

=====    match    P_REQUEST_ID =========
group all: P_REQUEST_ID":"585471439551123454"
aim index: 585471439551123454
group all: P_REQUEST_ID":"585471439551123455"
aim index: 585471439551123455
group all: P_REQUEST_ID":"585471439551123456"
aim index: 585471439551123456
=====    match    formId =========
group all: formId":930000003690
aim index: 930000003690
group all: formId":930000003694
aim index: 930000003694
group all: formId":930000003692
aim index: 930000003692

總結(jié):匹配json格式字符串屬性的時(shí)候,如果使用\w的時(shí)候注意下,其可能包含希臘字母,俄文的字母。明確其內(nèi)容的,直接寫更直觀。屬性是數(shù)字的,就不用加雙引號(hào)了,直接使用\d匹配數(shù)字。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Springboot使用Junit測(cè)試沒有插入數(shù)據(jù)的原因

    Springboot使用Junit測(cè)試沒有插入數(shù)據(jù)的原因

    這篇文章主要介紹了Springboot使用Junit測(cè)試沒有插入數(shù)據(jù)的原因,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2020-04-04
  • Java如何實(shí)現(xiàn)對(duì)稱加密

    Java如何實(shí)現(xiàn)對(duì)稱加密

    這篇文章主要介紹了Java如何實(shí)現(xiàn)對(duì)稱加密問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 詳解spring中使用solr的代碼實(shí)現(xiàn)

    詳解spring中使用solr的代碼實(shí)現(xiàn)

    本篇文章主要介紹了詳解spring中使用solr的代碼實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2017-05-05
  • java封裝全局異常處理深入詳解

    java封裝全局異常處理深入詳解

    這篇文章主要為大家介紹了java封裝全局異常處理的深入詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • maven中profile的使用

    maven中profile的使用

    本文主要介紹了maven中profile的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Springboot集成RabbitMQ死信隊(duì)列的實(shí)現(xiàn)

    Springboot集成RabbitMQ死信隊(duì)列的實(shí)現(xiàn)

    在大多數(shù)的MQ中間件中,都有死信隊(duì)列的概念。本文主要介紹了Springboot集成RabbitMQ死信隊(duì)列的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Java讀寫鎖ReadWriteLock原理與應(yīng)用場(chǎng)景詳解

    Java讀寫鎖ReadWriteLock原理與應(yīng)用場(chǎng)景詳解

    這篇文章主要介紹了Java讀寫鎖ReadWriteLock原理與應(yīng)用場(chǎng)景詳解,讀寫狀態(tài)的設(shè)計(jì),寫鎖的獲取與釋放,鎖降級(jí)需要的朋友可以參考下
    2023-02-02
  • idea自帶Jacoco/idea自動(dòng)測(cè)試語(yǔ)句覆蓋率方法(使用詳解)

    idea自帶Jacoco/idea自動(dòng)測(cè)試語(yǔ)句覆蓋率方法(使用詳解)

    這篇文章主要介紹了idea自帶Jacoco/idea自動(dòng)測(cè)試語(yǔ)句覆蓋率方法,本文給大家分享使用方法,通過圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • 創(chuàng)建動(dòng)態(tài)代理對(duì)象bean,并動(dòng)態(tài)注入到spring容器中的操作

    創(chuàng)建動(dòng)態(tài)代理對(duì)象bean,并動(dòng)態(tài)注入到spring容器中的操作

    這篇文章主要介紹了創(chuàng)建動(dòng)態(tài)代理對(duì)象bean,并動(dòng)態(tài)注入到spring容器中的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2021-02-02
  • JVM內(nèi)存結(jié)構(gòu)相關(guān)知識(shí)解析

    JVM內(nèi)存結(jié)構(gòu)相關(guān)知識(shí)解析

    這篇文章主要介紹了JVM內(nèi)存結(jié)構(gòu)相關(guān)知識(shí)解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11

最新評(píng)論