0

Java アプリケーションとしてテストすると正常に動作する次の json 解析コードがあります。しかし、Androidプラットフォームで使用して実行すると、次のエラーが返されました

「予期しないトークン END OF FILE が位置 0 にあります」

これが私のコードです

public boolean parseJSON(String content)  {

    boolean retvalue=false;
    String jsonString=null;
    JSONParser parser=new JSONParser();
    Object obj;
    try {
        System.out.println("in the parse json");
        obj = parser.parse(content);
        JSONArray array=(JSONArray)obj;
        JSONObject obj2=(JSONObject)array.get(0);
        jsonString=(String) obj2.get("user_id");
        System.out.println("in the parse json  "+jsonString);
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }


    if (null != jsonString) {
        retvalue = true;
    }
    return retvalue;

}

メソッドの入力文字列は次のとおりです。

[{"user_id":"1","username":"arvind","password":"somu","firstname":"Arvind somu","accountNumber":"1234567","lastname":"", "アドレス":"","メール":"sample@gmail.com"}]

Javaで試したときに値1が出力されましたが、なぜこの問題がAndroidで発生するのかわかりません。コードの何が問題なのかをボディで示唆できますか。私が使用しているパーサーは json-simple1.1.1 です

4

1 に答える 1

0

これを使って:

   JSONObject obj2;
   obj2 = array.optJSONObject(0);

メソッド optJSONObject は JSONObject を返すため、キャストする必要はありません。get() はオブジェクトを返します。これを試してみてください。これで解決するかもしれません。

于 2013-09-05T18:58:27.907 に答える