Gson gson = new Gson();
String jsonInString = "{\"userId\":\"1\",\"userName\":\"Yasir\"}";
User user= gson.fromJson(jsonInString, User.class);
User.class的用途是什么。任何人都可以在该课程中清楚地解释只有getter和setter,我需要知道该代码将如何工作吗?
答案 0 :(得分:0)
它是一个pojo Class。
POJO表示“普通旧Java对象” - 它是一个纯数据结构,其中包含带有getter和可能的setter的字段,并且可能会覆盖Object中的某些方法(例如equals)或其他一些类似Serializable的接口,但是没有它自己的。有关详细信息,请参阅Advantage of POJO
答案 1 :(得分:0)
假设我们需要使用JSON对象并将它们作为Java对象加载。假设Web服务器在查询时将生成以下JSON:
{NAME:“SAHIL”,LANGUAGE:“Java”,LOCATION:“Gurgaon”}
此JSON对象包含三个字段及其各自的值。假设我们需要使用JSON对象并创建表示此数据的Java对象。为了使这个例子更有趣,我们假设我们只对名称和位置字段感兴趣。
首先,我们需要创建一个包含我们想要表示的字段(名称和位置)的Java类。我们叫班级人物。此类的名称无关紧要,但字段的名称不相关。字段名称必须与JSON中的名称匹配(包括案例)。此外,该类必须包含一个默认构造函数(即使在此设置为私有)。如下所示,字段名称和位置为JSON中的大写字母。忽略JSON字段P_LANGUAGE,因为Java对象不包含具有此名称的字段。可以理解的是,字段的名称不遵循Java命名约定,但暂时让我们保持简单。
public class Person {
private String NAME;
private String LOCATION;
**// Getters and setters are not required for this example.
// GSON sets the fields directly using reflection.**
@Override
public String toString() {
return NAME + " - " + LOCATION;
}
}
准备好Java对象后,我们可以读取JSON对象并将它们作为Java对象加载,如下所示。为了模拟现实生活中的情况,我们使用字节流作为输入。另请注意,JSON内容保存在资源源文件夹中的文件中(通常不是这种情况)。
public class JsonToJava {
public static void main(String[] args) throws IOException {
try(Reader reader = new InputStreamReader(JsonToJava.class.getResourceAsStream("/Server1.json"), "UTF-8")){
Gson gson = new GsonBuilder().create();
Person p = gson.fromJson(reader, Person.class);
System.out.println(p);
}
}
}
这应该产生以下结果:
SAHIL - Gurgaon
Gson解析了JSON对象并创建了Person类的一个实例,然后将其打印到命令提示符。
希望这会清除您的疑问,如果仍有疑问,请发表评论,将其清除。
提前完成。