第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

獲取 jsonObject 的不存在屬性的最佳方法

獲取 jsonObject 的不存在屬性的最佳方法

呼如林 2023-03-23 13:49:28
我嘗試通過 REST API 從 JIRA 收集數(shù)據(jù)。我可以獲得帶有 JSONObjects 的 jsonArray。這些 JSONObjects 可能包含屬性 a;b;c;d。一些 JSONObjects 可能只包含例如 a;b;c 缺少屬性 d。我試圖在代碼中收集這些屬性。由于某些 JSONObjects 缺少某些屬性,我可能會(huì)收到這樣的錯(cuò)誤消息:Exception in thread "main" org.json.JSONException: JSONObject["d"] not found.我使用了 try/catch 方法(見下文),因此我通過忽略它來避免錯(cuò)誤消息。有沒有更好的方法來解決這樣的問題?JsonNode jsonNode = response.getBody();JSONArray jsonArray = jsonNode.getArray();for (int i = 0; i < jsonArray.length(); i++) {JSONObject jsonObject = jsonArray.getJSONObject(i);String name = (String) jsonObject.get("name");String startDate = (String) jsonObject.get("startDate");String releaseDate = (String) jsonObject.get("releaseDate");Integer projectId = (Integer) jsonObject.get("projectId");String description;// getting the error for the attribute descriptiontry {    description = (String) jsonObject.get("description");} catch (Exception e) {    description = "";}
查看完整描述

1 回答

?
慕森卡

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊

創(chuàng)建一個(gè)custom object并deserialize放入json string該對(duì)象的一個(gè)實(shí)例中。我將在下面展示一個(gè)使用gson庫的解決方案


Maven 依賴


<dependency>

    <groupId>com.google.code.gson</groupId>

    <artifactId>gson</artifactId>

    <version>2.8.5</version>

</dependency>

模型類


public class Model {


private boolean archived;

private String releaseDate;

private String name;

private String self;

private String userReleaseDate;

private long id;

private long projectId;

private boolean released;


//getters && setters ommitted 


public Model(){


}

然后你可以deserialize the JSON string into the Model class like this


String json = "{\"archived\":false,\"releaseDate\":\"2019-07-16\",\"name\":\"test 1.0\",\"self\":\"https://test/rest/api/latest/test/10000\",\"userReleaseDate\":\"16/Jul/19\",\"id\":\"10000\",\"projectId\":10000,\"released\":true}";

Gson gson = new GsonBuilder().create();

Model model = gson.fromJson(json, Model.class);

這樣,您就不必每次都分別檢查每個(gè)參數(shù)以將其分配給相應(yīng)的成員變量。


查看完整回答
反對(duì) 回復(fù) 2023-03-23
  • 1 回答
  • 0 關(guān)注
  • 112 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)