亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java怎么獲取JSON中某個對象的值

發布時間:2022-06-16 10:36:14 來源:億速云 閱讀:1632 作者:iii 欄目:開發技術

這篇“Java怎么獲取JSON中某個對象的值”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Java怎么獲取JSON中某個對象的值”文章吧。

Java獲取JSON中某個對象的值

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);
    }
}

使用方式

現在String result中有如下的JSON串,要取得deptCode

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

Java正則表達式-獲取json某個屬性值

處理數據的時候,要匹配json數據格式的字符串某個屬性的值

json數據格式: {"flow_name":"paramName"}

要獲取到 flow_name屬性的值: paramName

要怎么處理呢?

語法

  • [abc]:表示字母abc中的任意一個

  • \w:除了([0-9a-zA-Z_])還包含了希臘字母,俄文的字母等;

  • \d:匹配數字

數量控制符

  • ? 表示1個或0個。換句話說,表示要不然沒有,要不然只有1個

  • + 表示1個或多個

匹配

處理思路:

{"flow_name":"paramName"}

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

flow_name 是已知的,要匹配 ":"paramName" 這部分的內容。

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 : 數字,字母 ,下劃線 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);
}
 
/**
 * 正則表達式 查找匹配json字符串對應屬性的值
 * @param sourcStr 字符串
 * @param patternStr 正則表達式
 * @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;
}

結果:

=====    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

以上就是關于“Java怎么獲取JSON中某個對象的值”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

句容市| 崇阳县| 香格里拉县| 化德县| 静宁县| 广西| 巩留县| 仲巴县| 安顺市| 津市市| 襄城县| 北票市| 渭源县| 平果县| 介休市| 垫江县| 建湖县| 广元市| 和硕县| 巴林右旗| 方城县| 嘉鱼县| 丘北县| 桂林市| 无棣县| 黎川县| 遂川县| 克山县| 和政县| 赤壁市| 巴彦县| 永德县| 上栗县| 图木舒克市| 澄迈县| 都兰县| 南安市| 靖远县| 红安县| 定西市| 手游|