Я разбираю json с помощью залпа, но он не работает и получаю ошибку. Follwing - это мой код и ответ json. пожалуйста, помогите мне решить эту проблему
private void getStaffList() {
showpDialog();
RequestQueue requestQueue = Volley.newRequestQueue(this);
final String url = "url";
try {
final JSONObject jsonObj = new JSONObject();
jsonObj.put("username", "test");
jsonObj.put("password", "123456");
JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.POST,
url, jsonObj, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d("TAG", "Main response = " + response);
staffarraylist=new ArrayList<DataModel>();;
try {
JSONObject jobSuccess=response.getJSONObject("TABLE_DATA");
Log.d("TAG", "JSONObj response = " + jobSuccess);
JSONArray jarMyData=jobSuccess.getJSONArray("data");
Log.d("TAG", "JSONArray response = " + jarMyData);
for (int i = 0; i < jarMyData.length(); i++) {
JSONArray jar = jarMyData.getJSONArray(i);
DataModel movie = new DataModel();
movie.setName(jar.getString(0));
movie.setOccupation(jar.getString(1));
movie.setPlace(jar.getString(2));
movie.setId(jar.getString(3));
movie.setDate(jar.getString(4));
movie.setPrice(jar.getString(5));
staffarraylist.add(movie);
}
}catch (JSONException e)
{
Log.d("JSONException",e.toString());
}
rcAdapter = new RecyclerViewAdapterHome(MainActivity.this, staffarraylist);
recyclerView.setAdapter(rcAdapter);
hidepDialog();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d("TAG", "JSONObj Error: " + error.getMessage());
hidepDialog();
//Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_SHORT).show();
// hide the progress dialog
}
});
requestQueue.add(jsonObjReq);
} catch (JSONException e) {
e.printStackTrace();
}
}
Logcat
Основной ответ = {"TABLE_DATA": "{\" data \ ": [[\" Tiger Nixon \ ", \" System Architect \ ", \" Edinburgh \ ", \" 5421 \ ", \" 2011/04 / 25 \ ", \" 320 800 $ \ "], [\" Гаррет Уинтерс \ ", \" Бухгалтер \ "и т. д.
D / JSONException: org.json.JSONException: Value {"data": [["Tiger Nixon", "System Architect", "Edinburgh", "5421", "2011/04/25", "320 800 долларов США"], [ «Гаррет Уинтерс», «Бухгалтер», «Токио», «8422», «2011/07/25», «$
Сначала проверьте правильность вашего формата json с помощью щелкнув здесь и вставьте свой json для проверки. Если ответ правильный, используйте Gson. Он проанализирует ответ без каких-либо ошибок.
Он преобразует ваш ответ в класс pojo, поэтому вы можете использовать этот класс вместо преобразования json вручную.
ты можешь мне помочь с этим, пожалуйста
Скопируйте и вставьте свой ответ json. Он создаст класс java, который вы поместите в свой проект. а затем добавьте в свой проект библиотеку gson.
он создается как этот открытый класс Test {private String TABLE_DATA; общедоступная строка getTABLE_DATA () {return TABLE_DATA; } public void setTABLE_DATA (String TABLE_DATA) {this.TABLE_DATA = TABLE_DATA; } @Override public String toString () {return "ClassPojo [TABLE_DATA = " + TABLE_DATA + "]"; }} как проверять данные ??
Теперь создайте класс внутри вашего проекта с именем Test
Gson gson = новый Gson (); Test test = gson.fromJson (ответ, Test.class);
как разобрать массив данных
ответ в порядке, можете ли вы сказать, какая польза от Gson в моем случае? как пользоваться.