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