я пытаюсь получить от URL простого объекта JSON (не массив, просто {} s), и я получаю две ошибки:Джексон + залп - TypeReference абстрактен
Error:(43, 81) error: TypeReference is abstract; cannot be instantiated
Error:(36, 16) error: no suitable constructor found for JsonObjectRequest(String,<anonymous Listener<JSONObject>>,<anonymous ErrorListener>)
constructor JsonObjectRequest.JsonObjectRequest(String,JSONObject,Listener<JSONObject>,ErrorListener) is not applicable (actual and formal argument lists differ in length)
constructor JsonObjectRequest.JsonObjectRequest(int,String,JSONObject,Listener<JSONObject>,ErrorListener) is not applicable (actual and formal argument lists differ in length)
это мой OnCreate код:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_details);
String url = getResources().getString(R.string.json_url);
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(GetJsonObject(url));
}
и это мой метод JSONObject:
@NonNull
private JsonObjectRequest GetJsonObject(String url) {
return new JsonObjectRequest(url, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
if (response.length() > 0) {
Details results = mapper.readValue(response.toString(), new TypeReference<Details>());
String a = response.toString();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), getResources().getString(R.string.no_internet), Toast.LENGTH_LONG).show();
}
});
}
Я не понимаю ошибок, особенно TypeReference один , так как у меня есть другой код (witn jsonarray), который, кажется, так же.
Заранее благодарен!
Вы смесительной Джексон JSONObject и Android встроенный в JSONObject, это выглядит как –
Второстепенные проблемы ... Это, как вы читаете объект Джексон JSON 'картографа .readValue (response, Details.class) ' –
Спасибо за ответы! Я изменил значение readvalue, как вы говорите, и все jsonobjects - это те, что были встроены в android. – emboole