【问题标题】:how to convert a json array into java object?如何将 json 数组转换为 java 对象?
【发布时间】:2015-11-01 08:42:41
【问题描述】:

我使用 microsoft asp.net 身份创建了一个错误处理系统,它通过使用枚举作为 json 模型返回错误

public enum ErrorType
{
    InvalidPassword,
    TooShortPassword,
    NullUserName,
    InvalidUserName,
    NullEmail,
    InvalidEmail,
    DuplicateUserName,
    DuplicateEmail,
    OtherIdentityErrors,
    LoginIncorrectUserNameOrPass
}

我有一个类可以从中创建错误列表

public class ErrorModelJson
{
    public ErrorModelJson()
    {
        ErrorTypes = new List<ErrorType>();
    }
    public List<ErrorType> ErrorTypes { get; set; }
}

当用户发送请求登录时,如果用户名或密码不正确登录操作方法返回一个json有一个错误列表

private ApplicationUserManager UserManager => Request.GetOwinContext().GetUserManager<ApplicationUserManager>();
        [AllowAnonymous]
    public async Task<IHttpActionResult> Login(UserLoginJson userLoginJson)
    {
        var user = await UserManager.FindByNameAsync(userLoginJson.UserNameOrEmail) ??
                   await UserManager.FindByEmailAsync(userLoginJson.UserNameOrEmail);
        if (user == null || !await UserManager.CheckPasswordAsync(user, userLoginJson.Password))
        {
            var errorJson = new ErrorModelJson();
            errorJson.ErrorTypes.Add(ErrorType.LoginIncorrectUserNameOrPass);
            errorJson.ErrorTypes.Add(ErrorType.InvalidPassword);
            return ResponseMessage(Request.CreateResponse(HttpStatusCode.BadRequest, errorJson));


        }
        IUserManagement userManagement = new UserManagement();

        return Ok(userManagement.GetUserLoginReturnJson(user));
    }

so in my android application i have an enum ErrorType and a class ErrorModelJson to parse received json to ErrorModelJson to create a list of error my android app recieve a json as below
{"ErrorTypes":[9]}

我将通过 gson 和 volley 使用这些代码将此 json 转换为 ErrorModelJson,但我的模型为空,您能帮帮我吗?

 @Override
protected VolleyError parseNetworkError(VolleyError volleyError){
    NetworkResponse response = volleyError.networkResponse;
    switch (response.statusCode)
    {
        case 400:
            String data=new String(volleyError.networkResponse.data);
            Gson gson = new Gson();

            ErrorModelJson errorModelJson1 =    gson.fromJson(data,ErrorModelJson.class);
            errorModelListener.onError(errorModelJson1);
            break;
    }
}

【问题讨论】:

    标签: asp.net gson android-volley


    【解决方案1】:

    我没有深入研究代码,但我建议将 json 数组转换为字符串,然后将其重新解析为数组对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-27
      • 1970-01-01
      • 1970-01-01
      • 2016-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多