0

AndroidのJsonでリストを消費しようとしています。しかし、うまくリストが生成されていないと思い、Jsonで解析しようとするとエラーが出てしまいます。

私はこの結果を得ています:

[{"id":7,"word":"w6","definition":"d6","language":"es","numberDefinition":0,"success":false},{"id": 8,"単語":"w7\n","定義":"d7","言語":"es","数値定義":0,"成功":false},{"id":9,"単語":"w8","definition":"d8","language":"es","numberDefinition":0,"success":false}]

@GET
@Path("words")
@Produces(MediaType.APPLICATION_JSON)
public List<Word> getWords(@QueryParam("number") int number  ) {
    List<Word> list = null;

    list = dictionary.getListWords(number);

    return list;
}

Androidの私のJavaコードは次のとおりです。

            respJSON = new JSONObject(response);
            JSONArray lineItems = respJSON.getJSONArray("words");
            listWords = new ArrayList<Word>();

            for(int i=0; i<lineItems.length(); i++)
            {               
                JSONObject obj = lineItems.getJSONObject(i);                
                id = obj.getInt(ConstantsTrivial.WORD_ID);
                definition = obj.getString(ConstantsTrivial.WORD_DEFINITION);
                language = obj.getString(ConstantsTrivial.WORD_LANGUAGE);
                wordName = obj.getString(ConstantsTrivial.WORD_NAME);
                numberDefinition = obj.getInt(ConstantsTrivial.WORD_NUMBER_DEFINITION);
                word = new Word(id, wordName, definition, language, numberDefinition);

                listWords.add(word);
            }

「単語」を探しています。この間違いは知っていますが、Webサービスが正しい方法でリストを生成するために何をすべきかわかりません..

エラーは次のとおりです。

03-19 13:09:48.086: E/WebServiceTask(9868): 値 [{"numberDefinition":0,"id":1,"word":"w0","language":"ES","definition" :"d0","success":false},{"numberDefinition":0,"id":3,"word":"w2","language":"es","definition":"d2"," success":false},{"numberDefinition":0,"id":4,"word":"w3","language":"es","definition":"d3","success":false},タイプ org.json の {"numberDefinition":0,"id":9,"word":"w8","language":"es","definition":"d8","success":false}]。 JSONArray を JSONObject に変換できません

ありがとうございました。

4

1 に答える 1

0

エラーはコードの最初の行にあります。あなたの値は JSONObject ではなく、JSONArray です。行は次のようになります。

JSONArray lineItems = new JSONArray(response);

2 行目を削除することを忘れないでください。

于 2013-03-19T13:09:38.617 に答える