在 JSONObject 中生成搜索值?

我有一个非常不同的结构 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);

我想知道是否可以使用实用方法以更好、更通用的方式获取这些值?另外,我也想避免那些演员,有什么解决办法吗?


智慧大石
浏览 164回答 2
2回答

跃然一笑

由于 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&nbsp; &nbsp;setBrand(String brand){ this.brand = brand;}public int&nbsp; 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您不需要进行演员表的方式。您可以在此处阅读更多相关信息。

白衣染霜花

您可以使用 Google 提供的 GSON 库将 JSON 映射到 Java。一个例子,public class Example {&nbsp; private String val1;&nbsp; private String val2;&nbsp; private ArrayList<int> index_key1;&nbsp; private ArrayList<int> index_key2;&nbsp; private ArrayList<int> index_key3;&nbsp; ///&nbsp; //&nbsp; Getter Methods&nbsp; ///&nbsp; public String getVal1() { return val1; }&nbsp; public String getVal2() { return val2; }&nbsp; public int getIndex1() { return index_key1.get(0); }&nbsp; public int getIndex2() { return index_key2.get(0); }&nbsp; public int getIndex3() { return index_key3.get(0); }}然后&nbsp; Example ex = new Gson().fromJson(response.toString(), Example .class);&nbsp;&nbsp;之后你应该很高兴去。还有一个名为 Jackson 的库,它提供了与 GSON 类似的解决方案。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java