I am trying to parse the following JSON :
{
"Message": "The request is invalid.",
"ModelState": {
"": [
"Name [email protected] is already taken.",
"Email '[email protected]' is already taken."
]
}
}
The code i used :
ErrorRequest page = gson.fromJson(response.getResponseString(), ErrorRequest.class);
But i am getting the error: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2
My POJO classes are : ErrorRequest.Java
package com.devinedesign.cleanride.domain;
import com.google.gson.annotations.SerializedName;
import java.util.ArrayList;
import java.util.List;
public class ErrorRequest
{
@SerializedName("Message")
private String message;
@SerializedName("ModelState")
private List<ModelState> modelState;
public ErrorRequest(String message,List<ModelState> modelState)
{
this.message = message;
this.modelState = modelState;
}
public String getMessage()
{
return message;
}
public void setMessage(String message)
{
this.message = message;
}
public List<ModelState> getModelState()
{
return modelState;
}
public void setModelState(List<ModelState> modelState)
{
this.modelState = modelState;
}
}
ModelState.Java
package com.devinedesign.cleanride.domain;
import com.google.gson.annotations.SerializedName;
public class ModelState
{
@SerializedName("ModelState")
private String modelState;
public ModelState(String modelState)
{
this.modelState = modelState;
}
public String getModelState() {
return modelState;
}
public void setModelState(String modelState) {
this.modelState = modelState;
}
}
{ "Message": "The request is invalid.", "ModelState": [ "Name [email protected] is already taken.", "Email '[email protected]' is already taken." ] }. The empty key just seems to abstract a pretty simple json response.