亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從內部 json 對象獲取鍵值

從內部 json 對象獲取鍵值

白衣染霜花 2023-09-27 14:43:21
我有一個如下所示的 json 對象String jsonStr ="{\"m\":{\"p\":{\"0\":{\"ms\":{\"s\":1}}}}}";我想從中獲取 key 的值import org.codehaus.jettison.json.JSONArray;import org.codehaus.jettison.json.JSONException;import org.codehaus.jettison.json.JSONObject;JSONObject object = new JSONObject(jsonStr);System.out.println(object.get("m"));JSONObject mObj  = (JSONObject) object.get("m");JSONObject pObj  = (JSONObject) mObj.get("p");JSONObject oObj  = (JSONObject) pObj.get("0");JSONObject sObj  = (JSONObject) oObj.get("ms");System.out.println(sObj.get("s"));除了使用上面的邏輯之外,有沒有什么方法可以輕松獲取 key 的值
查看完整描述

1 回答

?
LEATH

TA貢獻1936條經驗 獲得超7個贊

創建表示 JSON 的對象將是一種更簡潔的方法。然而,對于動態鍵,可以使用遞歸。


import com.google.gson.Gson;

import com.google.gson.GsonBuilder;


String jsonStr = "{\"m\":{\"p\":{\"0\":{\"ms\":{\"s\":1}}}}}";

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

Map data = gson.fromJson(jsonStr, Map.class);

Object value = obj.get(data, "s");

System.out.println(value); //1.0


//Input JSON as Map & key to search on

public Object get(Map data, String key) {

    System.out.println(data);

    if (!data.containsKey(key)) {

        for (Object v : data.values()) {

            return get((Map) v, key);

        }

    }

    return data.get(key);

}


查看完整回答
反對 回復 2023-09-27
  • 1 回答
  • 0 關注
  • 101 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號