Java:Gson:fromJson:Get元素值

Java:Gson:fromJson:Get元素值,java,gson,Java,Gson,我有一个json字符串,如下所示: string jsonString = "{"Header":{"ID": "103","DateTime": "2020-07-29 09:14:23.802-4:00 1","PlazaID": "01","Lane": "Lane 20","IPAddr&q

我有一个json字符串,如下所示:

string jsonString = "{"Header":{"ID": "103","DateTime": "2020-07-29 09:14:23.802-4:00 1","PlazaID": "01","Lane": "Lane 20","IPAddr": "192.9.0.123"},"Body": {"EventMsg": "Status: Online","EventNum": "99999"}}";
我试图通过使用Gson从上面的json获取if ID的值,它给了我NullPointerException。我的代码:

JsonObject jsonObject = new Gson().fromJson(jsonString, JsonObject.class );                                        
//System.out.println("jsonObject: " + jsonObject.toString());
String _ID = jsonObject.get("ID").getAsString();
我不确定代码中的错误在哪里。感谢您的帮助

编辑: 根据@Arvind的建议,我尝试了他的代码,但出现了以下错误:

根据@Arvind的建议,这项工作:

String _ID = jsonObject.get("Header").getAsJsonObject().get("ID").getAsString();

为了清晰起见,让我们先美化一下您的
jsonString

{
  "Header": {
    "ID": "103",
    "DateTime": "2020-07-29 09:14:23.802-4:00 1",
    "PlazaID": "01",
    "Lane": "Lane 20",
    "IPAddr": "192.9.0.123"
  },
  "Body": {
    "EventMsg": "Status: Online",
    "EventNum": "99999"
  }
}
请注意,
“ID”
位于
“Header”
内,因此您必须以这种方式对其进行解析:

String _ID = jsonObject.getJsonObject("Header").get("ID").getAsString();
另外,避免使用
get()
,因为有更好的方便方法:

String _ID = jsonObject.getJsonObject("Header").getString("ID");

编译器说什么?(编辑你的问题,如果问题太大,就把它放在那里)我试过gson-2.8.6.jar和gson-2.6.2.jar,两人都抱怨在JsonElement中找不到“get”方法(第二个get方法)。