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

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

在 JSONObject 中生成搜索值?

在 JSONObject 中生成搜索值?

智慧大石 2021-11-03 10:56:38
我有一個非常不同的結構 JSONObject。我正在使用 json.simple 從這樣的對象中獲取值:String val1 = ((LinkedHashMap<String, String>) response.get("key1")).get("inner_key1");String val2 = ((LinkedHashMap<String, String>) response.get("key1")).get("inner_key2");int index1 = (int) ((ArrayList) response.get("index_key1")).get(0);int index2 = (int) ((ArrayList) response.get("index_key2")).get(0);int index3 = (int) ((ArrayList) response.get("index_key3")).get(0);我想知道是否可以使用實用方法以更好、更通用的方式獲取這些值?另外,我也想避免那些演員,有什么解決辦法嗎?
查看完整描述

2 回答

?
躍然一笑

TA貢獻1826條經驗 獲得超6個贊

由于 JSON 中的鍵始終相同,您可以創建一個類并將鍵指定為實例變量。現在你可以使用Jackson library's Object Mapper在轉換JSON string到JSON Object如下圖所示的代碼。


public class Vehicle{

private String brand = null;

private int doors = 0;


public String getBrand() { return this.brand; }

public void   setBrand(String brand){ this.brand = brand;}


public int  getDoors() { return this.doors; }

public void setDoors (int doors) { this.doors = doors; }

}

Insdie的main函數可以寫如下代碼:


ObjectMapper objectMapper = new ObjectMapper();


String carJson =

"{ \"brand\" : \"Mercedes\", \"doors\" : 5 }";


try {

Vehicle vehicle= objectMapper.readValue(carJson, Vehicle.class);


System.out.println("car brand = " + vehicle.getBrand());

System.out.println("car doors = " + vehicle.getDoors());

} catch (IOException e) {

e.printStackTrace();

}

此外,使用Object Mapper您不需要進行演員表的方式。您可以在此處閱讀更多相關信息。


查看完整回答
反對 回復 2021-11-03
?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

您可以使用 Google 提供的 GSON 庫將 JSON 映射到 Java。


一個例子,


public class Example {


  private String val1;

  private String val2;

  private ArrayList<int> index_key1;

  private ArrayList<int> index_key2;

  private ArrayList<int> index_key3;


  ///

  //  Getter Methods

  ///


  public String getVal1() { return val1; }

  public String getVal2() { return val2; }

  public int getIndex1() { return index_key1.get(0); }

  public int getIndex2() { return index_key2.get(0); }

  public int getIndex3() { return index_key3.get(0); }

}

然后


  Example ex = new Gson().fromJson(response.toString(), Example .class);  

之后你應該很高興去。還有一個名為 Jackson 的庫,它提供了與 GSON 類似的解決方案。


查看完整回答
反對 回復 2021-11-03
  • 2 回答
  • 0 關注
  • 182 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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