如何将JSON字符串转换为自定义对象?

7
我有一个字符串,就像这样(只是)。
"{\"username":\"stack\",\"over":\"flow\"}"

我已成功地将这个字符串转换为JSON格式,使用的方法是

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

我有一个类
public class MyClass
{
    public String username;
    public String over;
}

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

2
看看 Jackson 或 Gson,它们都可以处理这种情况。 - Thomas
2个回答

12

你需要使用Gson:

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

另外,在未来的项目中可能会派上用场: Json2Pojo类生成器


+1 注意:Gson非常适用于简单的情况。如果您需要更多的控制,请看看Jackson。 - Aaron Digulla
@Goran Štuc 有一个疑问,什么是GSON,它比JSON Object更好吗? - Suganthan Madhavan Pillai
Gson是一个API,您可以在此处获取:http://code.google.com/p/google-gson/。 - Goran Štuc

9

您可以在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;
}

1
有没有办法在不修改类的情况下,使用 JSONObject 来转换对象? - jpganz18

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接