2017-04-10 14 views
0

私はGSONを初めて使いました。
ほんの数日前に誰かがGSONの使用を提案してくれました。
私はこの応答を解析しようとしていますが、私は言ったエラーを受け付けております。..BEGIN_ARRAYでしたが、BEGIN_OBJECT

{ 
    "status": 4, 
    "data": { 
    "id": 15, 
    "user_id": 1, 
    "sub_contractor_id": 1, 
    "battery_id": 1, 
    "user_long": "120.8922933", 
    "user_lat": "14.8185964", 
    "rider_long": "121.029015", 
    "rider_lat": "14.6496133", 
    "user_address_location": "313 Bantayan St, Balagtas, 3016 Bulacan, Philippines", 
    "complete": 1, 
    "created_at": "2017-04-09 15:22:07", 
    "updated_at": "2017-04-09 15:26:16", 
    "deleted_at": null, 
    "user": { 
     "id": 1, 
     "user_group_id": 3, 
     "email": "[email protected]", 
     "created_at": null, 
     "updated_at": null, 
     "deleted_at": null 
    }, 
    "battery": { 
     "id": 1, 
     "model": "Enduro", 
     "size": "DIN44", 
     "price": 2000, 
     "created_at": null, 
     "updated_at": null, 
     "deleted_at": null 
    } 
    } 
} 

私はちょうど「ステータス」の部分を取得しますが、エラーを得ていました。

private void fetchPosts() { 
     StringRequest request = new StringRequest(Request.Method.POST, ENDPOINT, onPostsLoaded, onPostsError) { 
      @Override 
      protected Map<String, String> getParams() throws AuthFailureError { 
       Map<String, String> params = new HashMap<>(); 
       params.put("booking_id", "15"); 
       return params; 
      } 
     }; 

     requestQueue.add(request); 
    } 

    private final Response.Listener<String> onPostsLoaded = new Response.Listener<String>() { 
     @Override 
     public void onResponse(String response) { 
      Log.e("TAG", response); 
      List<ModelBooking> posts = Arrays.asList(gson.fromJson(response, ModelBooking[].class)); 
      for (ModelBooking post : posts) { 
       Log.e("TAG", post.status); 
      } 
     } 
    }; 

    private final Response.ErrorListener onPostsError = new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      Log.e("TAG", error.toString()); 
     } 
    }; 

そして、私のモデルです。

public class ModelBooking { 
    @SerializedName("status") 
    String status; 
} 
+1

私はあなたの質問は重複していると思うし、インターネット上で答えを見つけることができます。例えば、以下を見てください:http://stackoverflow.com/questions/9598707/gson-throwing-expected-begin-object-but-was-begin-array –

+1

[GSON予想BEGIN \ _ARRAYの可能な複製がBEGINでした\ _OBJECT](http://stackoverflow.com/questions/16654042/gson-expected-begin-array-but-was-begin-object) –

答えて

1

あなたのJSON文字列は、オブジェクト(それは{で始まる)、ではない([で始まるだろう)の配列です。あなたのコードは次のようになります:

関連する問題