最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

全方位解析key值不確定的json數(shù)據(jù)

 更新時間:2021年01月25日 15:17:24   作者:人艱不拆_zmc  
這篇文章主要介紹了全方位解析key值不確定的json數(shù)據(jù),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

遇到一個奇葩的需求,一段json的key值是動態(tài)的,并且這個key還是有作用的。這就要求在不知道key是多少的情況下去把這段json解析出來。

我用到的方法是迭代器。

具體代碼如下

JSONObject jsonObject = new JSONObject(jsonData);
//通過迭代器獲取這段json當(dāng)中所有的key值
Iterator keys = jsonObject.keys();
//然后通過一個循環(huán)取出所有的key值
while (keys.hasNext()){
String key = String.valueOf(keys.next());
//最后就可以通過剛剛得到的key值去解析后面的json了
}

得到key值以后,就可以用jsonobject來解析對應(yīng)的值了。

示例:

/**
   * 獲取匯率
   *
   * @return
   * @throws Exception
   */
  @SuppressWarnings("rawtypes")
  public BigDecimal getRate() throws Exception {
    String m_rateResult = HttpUtil.sendGet("https://x.szsing.com/v2/quote/price/m_rate");
    JSONObject jsonObject = new JSONObject(m_rateResult);
    JSONObject data = jsonObject.getJSONObject("data");
    Iterator keys = data.keys();
    String CNY = "0";
    while (keys.hasNext()) {
      String key = String.valueOf(keys.next());
      JSONObject m_rate = data.getJSONObject(key);
      CNY = m_rate.getString("CNY");
      if (CNY.isEmpty() == false) {
        break;
      }
    }
    return new BigDecimal(CNY);
  }
 
  /**
   * 獲取類別版本
   *
   * @return
   * @throws Exception
   */
  public String getCategoryVersion() throws Exception {
    String m_custom = HttpUtil.sendGet("https://x.szsing.com/v2/quote/price/m_custom");
    JSONObject jsonObject = new JSONObject(m_custom);
    JSONObject data = jsonObject.getJSONObject("data");
    JSONObject category = data.getJSONObject("category");
    return category.getString("version");
  }

補充:如何解析key值不固定的json數(shù)據(jù)

大多數(shù)情況下我們遇到的json數(shù)據(jù)一般都是key值是固定的,方便我們創(chuàng)建對應(yīng)的實體類對象來進行解析。但有時候也會有些特殊情況,key值和value值一樣都是動態(tài)未知的情況。

如下所示:

{
data: { 
   "姓名": "老王",
  "年齡": "41",
  "性別": "男",
  } 
}

那如何解決呢?

直接貼代碼:

JSONObject jsonObject = new JSONObject(jo.toString);//json數(shù)據(jù)
    JSONObject data= jsonObject.getJSONObject("data");          
   // 動態(tài)獲取key值
  Iterator<String> iterator = data.keys();//使用迭代器
  while (iterator.hasNext()) {
  String key = iterator.next();//獲取key
  String value = data.getString(key);//獲取value
  Log.e("key-value","key="+key+" value="+value);
  }

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • 深入理解Java對象復(fù)制

    深入理解Java對象復(fù)制

    使用任何已有的工具,都沒有直接使用 get set 方式進行,對象轉(zhuǎn)換的速度快,雖然get set 方式代碼對一些比較麻煩,但是效率要高一些的,推薦使用 MapStruct 方式.,需要的朋友可以參考下
    2021-05-05
  • 使用@Value值注入及配置文件組件掃描

    使用@Value值注入及配置文件組件掃描

    這篇文章主要介紹了使用@Value值注入及配置文件組件掃描方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java使用線程池實現(xiàn)socket編程的方法詳解

    Java使用線程池實現(xiàn)socket編程的方法詳解

    這篇文章主要為大家詳細介紹了Java使用線程池實現(xiàn)socket編程的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • SpringSecurity 自定義認(rèn)證登錄的項目實踐

    SpringSecurity 自定義認(rèn)證登錄的項目實踐

    本文主要介紹了SpringSecurity 自定義認(rèn)證登錄的項目實踐,以手機驗證碼登錄為例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08
  • GitLab在IDEA中回滾主分支問題

    GitLab在IDEA中回滾主分支問題

    這是工作中遇到的問題,記錄下來,也方便自己后面查看操作步驟,也方便各位遇到這個問題,不至于卡太久,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Spring 中的 ResourceLoader實例詳解

    Spring 中的 ResourceLoader實例詳解

    Spring框架提供了ResourceLoader接口,用于加載資源文件,DefaultResourceLoader是其基本實現(xiàn),只能加載單個資源,而ResourcePatternResolver繼承自ResourceLoader,增加了按模式加載多個資源的能力,感興趣的朋友一起看看吧
    2024-11-11
  • Maven中optional標(biāo)簽用法詳解

    Maven中optional標(biāo)簽用法詳解

    這篇文章主要介紹了Maven中optional標(biāo)簽,文章中有詳細的代碼示例供大家參考,對大家的學(xué)習(xí)或工作有一定的參考價值,感興趣的小伙伴可以借鑒一下
    2023-05-05
  • springboot如何使用@ConfigurationProperties封裝配置文件

    springboot如何使用@ConfigurationProperties封裝配置文件

    springboot如何使用@ConfigurationProperties封裝配置文件的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java超級實用的Freemarker工具類

    Java超級實用的Freemarker工具類

    這篇文章主要介紹了Java超級實用的Freemarker工具類,文章圍繞相關(guān)資料介紹以及代碼描述非常詳細,需要的小伙伴可以參考一下,希望對你得學(xué)習(xí)有所幫助
    2022-02-02
  • java項目啟動失敗的問題及解決

    java項目啟動失敗的問題及解決

    這篇文章主要介紹了java項目啟動失敗的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06

最新評論

林西县| 平安县| 青川县| 安溪县| 青铜峡市| 石家庄市| 平定县| 桂阳县| 灯塔市| 旌德县| 兰坪| 灌云县| 全州县| 昌宁县| 哈巴河县| 额济纳旗| 温宿县| 玉屏| 彰化市| 特克斯县| 岳普湖县| 峨山| 长顺县| 奉节县| 许昌市| 罗定市| 名山县| 井冈山市| 锡林郭勒盟| 亳州市| 佛山市| 长岭县| 讷河市| 瓮安县| 大田县| 洛浦县| 永康市| 天气| 即墨市| 高雄县| 宿迁市|