[英]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.