【问题标题】:How to convert JSON string to custom object? [duplicate]如何将 JSON 字符串转换为自定义对象? [复制]
【发布时间】:2025-12-27 20:20:17
【问题描述】:

我有这样的字符串(只是)

"{\"username":\"stack\",\"over":\"flow\"}"

我已成功将此字符串转换为 JSON

JSONObject object = new JSONObject("{\"username":\"stack\",\"over":\"flow\"}");

我有课

public class MyClass
{
    public String username;
    public String over;
}

如何将 JSONObject 转换为我的自定义 MyClass 对象?

【问题讨论】:

  • 看看 Jackson 或 Gson,他们都处理这种事情。

标签: java json


【解决方案1】:

你需要 Gson:

Gson gson = new Gson(); 
final MyClass myClass = gson.fromJson(jsonString, MyClass.class);

还有什么可能会在未来的项目中为您派上用场: Json2Pojo Class generator

【讨论】:

  • +1 注意:Gson 非常适合简单的情况。如果您需要更多控制权,请查看 Jackson。
  • @Goran Štuc 有个疑问,这个 GSON 是什么,比 JSON 对象更好
  • Gson 是一个 API,您可以在这里获取:code.google.com/p/google-gson
【解决方案2】:

您可以在MyClass 中实现一个静态方法,该方法将JSONObject 作为参数并返回一个MyClass 实例。例如:

public static MyClass convertFromJSONToMyClass(JSONObject json) {
    if (json == null) {
        return null;
    }
    MyClass result = new MyClass();
    result.username = (String) json.get("username");
    result.name = (String) json.get("name");
    return result;
}

【讨论】:

  • 有没有办法使用JSONObject转换对象?无需修改类