簡體   English   中英

使用Gson將json字符串解析為對象

[英]Parse json string to object using Gson

我嘗試通過使用Gson將json字符串轉換為java對象,但不知何故,我也沒弄清楚原因。

我的Json琴弦

{
    "JS":{
        "JS0":{
            "Name":"ABC",
            "ID":"5"
        },
        "JS1":{
            "Location":"UK",
            "Town":"LD"
        },
        "JS2":{
            "Usable":"true",
            "Port":"ABC"
        }
    }
}

在Java代碼中,我有4個類,JS,JS0,JS1和JS2
JS類包含JS0,JS1和JS2變量
JS0,JS1和JS2類包含與Json字符串示例相同的字段,例如JS0包含02個字段,字符串名稱和字符串ID
在所有類中,我都有變量的getter / setter,02個構造函數(01個帶有空參數,而另一個帶有參數字段中的所有變量)


對於使用Gson:

Gson gson = new Gson();
jsObject = gson.fromJson(sb.toString(), JS.class);


當我從jsObject訪問JS0,JS1和JS2對象時,它們為null。
有人可以告訴我我做錯了什么嗎?
非常感謝你,

這里的問題是,您正在嘗試轉換

{
   "JS" : {
       /* rest of JSON */
   }
}

JS對象,但是上面的JSON是這樣的Java類的表示

class Foo {
   JS JS;
}

因此,您需要首先從JSON字符串中獲取JS的值,然后調用fromJSON以將JS.class作為第二個參數傳遞來反序列化它。

要么

創建一個僅包含JS作為變量的簡單類,然后調用fromJSON並將該類作為fromJSON的第二個參數傳遞,如下所示:

Java的

class Foo {
   JS JS;
}


jsObject = gson.fromJson(sb.toString(), Foo.class);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM