gpt4 book ai didi

java - 如何在 Java 中解析带有属性(可以是字符串或对象)的 JSON?

转载 作者:行者123 更新时间:2023-12-01 12:42:50 24 4
gpt4 key购买 nike

我使用 mongodb 和 nodejs 作为后端来提供 API。 API 服务器将以不同的格式响应相同的用户对象,例如:

// curl http://localhost/users/5382f2949a24ed95b44dc04f
{ id: "5382f2949a24ed95b44dc04f", "name": "jack", "group": "5382f2949a24ed95b44dc04d" }

// curl http://localhost/users/5382f2949a24ed95b44dc04f?populate=group
{ id: "5382f2949a24ed95b44dc04f", "name": "jack", "group": { "id": "5382f2949a24ed95b44dc04d", "name": "g1" } }

可以是外键(字符串类型)或对象。

但是如何使用Gson(或其他JSON解析器)在Java中处理这两种样式的JSON字符串?

public class User {
private String or Group group; // ???
private String name;
}

最佳答案

如果你使用 Jackson,你可以这样做:

public class User {
private Group group;
private String name;
}

public class Group {
private String id;
private String name;

@JsonCreator
public static valueOf(String id) {return new Group(id);}

}

您还可以采用构造函数方法。

我认为它也适用于 Gson,否则尝试构造函数方法(例如:一个默认构造函数,一个带有 String 参数)。

关于java - 如何在 Java 中解析带有属性(可以是字符串或对象)的 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24936567/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com