When consuming web services I received a json and it is generating a parse error
Error en la peticion: com.android.volley.ParseError: org.json.JSONException: Value [{"id":1,"name":"Test","description":"some description","price":3.1416,"finish":"some finish","color":"some great color","suitability":"where tu use it","status":true,"picture":null}
This is the code:
/****** This activity is used for show Tiles ******/
public class CatalogActivity extends Activity {
/******* Variable It is used. to indicate how many fields are shown ******/
private GridLayoutManager mLayout;
private static TileAdapter mTileAdapter;
/****** Context to use the Strings ******/
private static Context mContext;
/****** Instances of gson, bus, realm, requestque, It is used to connect with web service ******/
private static Gson mGson;
private static RequestQueue mRequestQueue;
private static Bus mBus;
private static Realm mRealm;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_catalog);
Realm.init(this);
RealmConfiguration config = new RealmConfiguration.Builder().build();
Realm.setDefaultConfiguration(config);
mRealm = Realm.getDefaultInstance();
mGson = new Gson();
mRequestQueue = Volley.newRequestQueue(this);
mBus = new Bus();
RecyclerView MyRecyclerView = (RecyclerView) findViewById(R.id.recycler_tile);
mLayout = new GridLayoutManager(CatalogActivity.this,4);
MyRecyclerView.setLayoutManager(mLayout);
MyRecyclerView.setItemAnimator(new DefaultItemAnimator());
loadTiles();
List<TileModel> realmResults = CatalogActivity
.getRealm()
.where(TileModel.class)
.findAll();
mTileAdapter = new TileAdapter(realmResults, CatalogActivity.this);
MyRecyclerView.setAdapter(mTileAdapter);
}
/****** Helpers to connect with web service ******/
public static Gson getGson() {
return mGson;
}
public static RequestQueue getRequestQueue() {
return mRequestQueue;
}
public static Bus getBus() {
return mBus;
}
public static Realm getRealm() {
return mRealm;
}
/****** This methos is used for load Tiles ******/
public static void loadTiles() {
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET,
JSONKeys.KEY_URL_ALL_TILES, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.e("Response", response.toString());
try {
JSONArray mJsonArray = response.getJSONArray(JSONKeys.KEY_NAME);
for (int i = 0; i < mJsonArray.length(); i++) {
JSONObject mJsonObject = mJsonArray.getJSONObject(i);
TileModel mTileModel = CatalogActivity.getGson()
.fromJson(mJsonObject.toString(),
TileModel.class);
CatalogActivity.getRealm().beginTransaction();
CatalogActivity.getRealm().copyToRealmOrUpdate(mTileModel);
CatalogActivity.getRealm().commitTransaction();
Log.e("Agregando Pisos", mTileModel.getName());
}
CatalogActivity.getBus().post(new SuccessLoadTilesEvent(mContext
.getString(R.string.message_aggregate_tiles)));
} catch (JSONException e) {
Log.e("Error al parcear", e.toString());
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("Error en la peticion", error.toString());
}
});
CatalogActivity.getRequestQueue().add(jsonObjectRequest);
}
}