[英]convert json to json object using gson
我有一個定義如下的類 -
public class info {
private final string name;
private final string add;
private final Map<String, Skill> skills;
}
public class Skill {
String subCategory;
String proficiency;
}
JSON as -
{
"name": "abc",
"add": "random",
"skills": {
"java": {
"subCategory": "soft",
"proficiency": "A"
}
"C#": {
"subCategory": "soft",
"proficiency": "B"
}
}
}
如何將此json轉換為java對象信息? 我曾嘗試使用 gson 庫,但遇到多個錯誤。
問題是因為地圖里面有一個類技能。 不知道怎么轉換。 我查看了使用 Gson 將 JSON 轉換為 Java 對象的示例,但它非常簡單,在類中沒有列表或映射。
您的代碼有一些錯誤,但在修復這些錯誤后它確實可以工作。
string
而不是String
來定義字符串info
的變量定義為final
,並且您沒有定義它們(刪除 final 關鍵字有效),
下面是一個實際工作的例子:
public class Main {
public static void main(String[] args) {
String json = "{\r\n"
+ " \"name\": \"abc\",\r\n"
+ " \"add\": \"random\",\r\n"
+ " \"skills\": {\r\n"
+ " \"java\": {\r\n"
+ " \"subCategory\": \"soft\",\r\n"
+ " \"proficiency\": \"A\"\r\n"
+ " },\r\n"
+ " \"C#\": {\r\n"
+ " \"subCategory\": \"soft\",\r\n"
+ " \"proficiency\": \"B\"\r\n"
+ " }\r\n"
+ " }\r\n"
+ "}";
Info info = new Gson().fromJson(json, Info.class);
System.out.println(info.getSkills());
}
}
class Info {
private String name;
private String add;
private Map<String, Skill> skills;
public String getName() {
return this.name;
}
public String getAdd() {
return this.add;
}
public Map<String, Skill> getSkills() {
return this.skills;
}
}
class Skill {
String subCategory;
String proficiency;
}
我還冒昧地將info
重命名為Info
因為類名應該以大寫字母開頭並為私有變量添加 getter。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.