Покажется глупым, но я не понимаю как это сделать в данном случае, чтобы из одного класса передать в другой информацию, а потом начать с ней уже работать)
Есть такой Json
{
"success": true,
"data": [
{
"id": "1",
"name": "АР Крым"
},
{
"id": "2",
"name": "Винницкая область"
},
Парсится с помощью Jackson на 2 класса, Pojo и DataPojo
@JsonIgnoreProperties(ignoreUnknown=true)public class Pojo {
public Pojo(){}
private boolean success;
private List<Pojo> data;
@JsonProperty("data")
public List<Pojo> getDataPojo() {
return data;
}
public void setDataPojo(List<Pojo> data) {
this.data = data;
}
// getters & setters
@JsonProperty("success")
public boolean isSuccessPojo() {
return success;
}
public void setSuccessPojo(boolean success) {
this.success = success;
}
public String toString() {//???
}
DataPojo
public class DataPojo {
private String id, name;
// getters & setters
public String getIdDataPojo() {
return id;
}
public void setIdDataPojo(String id) {
this.id = id;
}
public String getNameDataPojo() {
return name;
}
public void setNameDataPojo(String name) {
this.name = name;
}
public String toString() {
return this.name+this.id;//???
}
Ну и собствено хочу тут начать уже ее присваивать.
StringRequest request = new StringRequest(Request.Method.GET,regions, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d(TAG,"login response"+ response);
try {
ObjectMapper mapper=new ObjectMapper();
Pojo pojo=mapper.readValue(response,Pojo.class);
System.out.println(pojo.toString());
}catch (IOException e) {
e.printStackTrace();
}
Можно собственноручно написать метод toString
в том виде, в каком вы хотите. Можно сгенерировать метод toString
в среде разработки и подправить.
IDE предложит список полей класса, которые необходимо включить в toString
- поправьте результат, если он вас не устроит. Я скопировал ваш класс, сгенерировал автоматически и вот что у меня получилось:
@Override
public String toString() {
return "Pojo{" +
"success=" + success +
", data=" + data +
'}';
}
Поскольку data это List, можно подправить вот так:
@Override
public String toString() {
return "Pojo{" +
"success=" + success +
", data=" + Arrays.toString(data.toArray()) +
'}';
}
Если вывести на экран это System.out.println(pojo.toString());
, то получится:
Pojo{success=true, data=[..., ..., ...]}
Можете манипулировать с этим, как хотите. Ваш класс по умолчанию наследуется от класса Object, и используя аннотацию @Override вы переопределяете дефолтный метод класса, тем самым, когда вы будете вызывать toString у любого объекта этого класса, результат будет таким, какой вы сделаете.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
В ReentrantReadWriteLock conditions не поддерживаются рид локомПочему?
Прошлый раз задавал подобный вопрос на что участник этого сообщества , наш друг Igor дал верный ответ