如何将json对象转换为类对象

时间:2010-11-30 06:10:55

标签: android

如何转换此json clsError和userId值:

String temp = "{"clsError":{"ErrorCode":110,"ErrorDescription":" Request Added"},"UserID":36}"

并将它们作为参数传递:

clsError errorObject=new clsError(UserID,clsError);

3 个答案:

答案 0 :(得分:2)

首先使用此:http://developer.android.com/reference/org/json/JSONObject.html#JSONObject(java.lang.String)

JSONObject tempJson = new JSONObject(temp);
JSONObject clsErrorJson = tempJson.getJSONObject("clsError");
clsError errorObject = new clsError(tempJson.getString("UserID"),
                                    clsErrorJson.getInt("clsError") + ": "
                                    + clsErrorJson.getString("ErrorDescription"));

基本上就是这样。但我不确定clsError构造函数的第二个参数。我只是假设它是我的例子中的一个字符串:)但这应该让你知道如何做到这一点。你必须用try / catch包围它。 eclipse会告诉你如何:)

答案 1 :(得分:1)

我发现杰克逊的ObjectMapper在这种情况下非常有帮助。

ObjectMapper objectMapper = new ObjectMapper();
clsError error = objectMapper.readValue(temp, clsError.class));

答案 2 :(得分:0)

您可以使用jQuery扩展方法将json包装到javascript对象中,如下所示:

function clsError(ErrorCode,ErrorDescription,UserID){
   this.ErrorCode=ErrorCode;
   this.ErrorDescription=ErrorDescription;
   this.UserID=UserID;
}

String temp="{"clsError":{"ErrorCode":110,"ErrorDescription":" Request Added"},"UserID":36}"
var obj = $.extend(new clsError(), temp);