假设我们需要使用 JSON 对象并将它们作为 Java 对象加载。假设 Web 服务器在查询时会生成以下 JSON:
{ 名称:“SAHIL”,语言:“Java”,位置:“古尔冈”}
此 JSON 对象包含三个具有各自值的字段。假设我们需要使用 JSON 对象并创建一个表示该数据的 Java 对象。为了让这个例子更有趣,假设我们只对名称和位置字段感兴趣。
首先,我们需要创建一个 Java 类,其中包含我们想要表示的字段(名称和位置)。我们称这个类为 Person。此类的名称无关紧要,但字段的名称则无关紧要。字段名称必须与 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 - 古尔冈
Gson 解析 JSON 对象并创建 Person 类的实例,然后将其打印到命令提示符。
希望这能消除您的疑问,如果仍有疑问,请发表评论,将消除它。
提前感谢。