Ich entwickle eine Android 3.1 und höher Anwendung.Erwartete BEGIN_ARRAY aber war BEGIN_OBJECT mit einem Array von drei Elementen
Ich benutze Spring Framework 1.0.0.0RC1 für Android und Google GSon 2.1.
Ich erhalte einen Fehler, wenn ich versuche, JSON zu analysieren.
Dies ist JSON zurück von "http://192.168.1.128/RestServiceImpl.svc/forms/".
{
"allFormsResult": [
{
"FormId": 1,
"FormName": "Formulario 1"
},
{
"FormId": 2,
"FormName": "Formulario 2"
},
{
"FormId": 3,
"FormName": "Formulario 3"
}
]
}
Hier habe ich alles tun:
public class FormSpringController
{
public static List<Form> LoadAll()
{
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.setAccept(Collections.singletonList(new MediaType("application","json")));
HttpEntity<?> requestEntity = new HttpEntity<Object>(requestHeaders);
String url = "http://192.168.1.128/RestServiceImpl.svc/forms/";
GsonHttpMessageConverter messageConverter = new GsonHttpMessageConverter();
List<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>();
messageConverters.add(messageConverter);
RestTemplate restTemplate = new RestTemplate();
restTemplate.setMessageConverters(messageConverters);
ResponseEntity<Form[]> responseEntity = restTemplate.exchange(url, HttpMethod.GET, requestEntity, Form[].class);
Form[] result= responseEntity.getBody();
return Arrays.asList(result);
}
}
Wenn ich versuche, es zu analysieren, bekomme ich folgende Fehlermeldung:
W/System.err(519): Caused by: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2
Wissen Sie, wie kann ich es beheben?
UPDATE
@hotveryspicy hat mir vorgeschlagen, ein "Problem" mit JSON ist. Dies ist, wie ich zu erzeugen JSON-Antwort (C# -Code):
public class RestServiceImpl : IRestServiceImpl
{
public List<FormContract> allForms()
{
List<FormContract> list = null;
using (var vAdmEntities = new ADMDatabase.ADMEntities())
{
list = new List<FormContract>();
foreach (var form in vAdmEntities.Form)
{
FormContract formC = new FormContract
{
FormName = form.name.Trim(),
FormId = form.formId
};
list.Add(formC);
}
}
return list;
}
}
Danke. Wie kann ich das beheben? Ich kann diesen Webservice ändern (gemacht mit C# und WCF), aber ich weiß nicht wie. – VansFannel
Code anzeigen, wie Sie analysieren. –
Meinst du C# -Code? Welchen Code müssen Sie sehen? – VansFannel