BEGIN_ARRAY erwartet, aber BEGIN_OBJECT mit einem Array von drei Elementen

Ich entwickle eine Anwendung für Android 3.1 und höher.

Ich verwende Spring Framework 1.0.0.0RC1 für Android und Google GSon 2.1.

Beim Parsen von JSON wird eine Fehlermeldung angezeigt.

Das istJSON zurückgegeben von"http://192.168.1.128/RestServiceImpl.svc/forms/".

<code>{
    "allFormsResult": [
        {
            "FormId": 1,
            "FormName": "Formulario 1"
        },
        {
            "FormId": 2,
            "FormName": "Formulario 2"
        },
        {
            "FormId": 3,
            "FormName": "Formulario 3"
        }
    ]
}
</code>

Hier mache ich alles:

<code>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);
    }
}
</code>

Wenn ich versuche, es zu analysieren, erhalte ich den folgenden Fehler:

<code>W/System.err(519): Caused by: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2
</code>

Wissen Sie, wie ich das beheben kann?

AKTUALISIEREN
@hotveryspicy hat mir vorgeschlagen, dass es ein "Problem" mit JSON gibt. So generiere ich eine JSON-Antwort (C # -Code):

<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;
    }
}
</code>

Antworten auf die Frage(1)

Ihre Antwort auf die Frage