java - How to parse RxJava to receive just the data that i want? -
i want numbers, i'm receiving @ log:
[boletim(grade=4.5), boletim(grade=9.5)]
the response:
public class graderesponse {      @inject     retrofit retrofit;      @inject     mainpresenter mainpresenter;      public void getgraderx() {          myapplication.getmaincomponent().injectintograderesponse(this);// informando ao dagger sobre o uso de um component e necessidade de injetar dependĂȘncia          subscription getgrade = retrofit                 .create(gradeservice.class)                 .getgrade()                 .subscribeon(schedulers.newthread())                 .observeon(androidschedulers.mainthread())                 .map(model -> {                      return model.getboletim();                  })                 .subscribe(new observer<boletim[]>() {                     @override                     public void oncompleted() {                      }                      @override                     public void onerror(throwable e) {                         log.i(tag, "saporra vai me matar ainda");                     }                      @override                     public void onnext(boletim[] grades) {                         log.i(tag, arrays.aslist(grades).tostring());                     }                 });     } }   the models:
grademodel:
@serializedname("boletim")     @expose     private boletim[] boletim;   boletim.class
public class boletim {      @serializedname("grade")     @expose     private double grade;   the retrofit service ok, dependency injection working. i'm receiving onsuccess method rxjava, need receiving numbers without "[boletim(grade=".
you seeing tostring of objects because entire object in map!
only numbers without "[boletim(grade=".
way can't map again , extract it?
.map(model -> {               // map returns boletim[]      return model.getboletim();  }) .map(boletim -> {             // map returns double[]     double grades = new double[boletim.length];     (int =0; < grades.length ; i++) {         grades[i] = boletim[i].getgrade() ;     }      return grades; }).subscribe(new observer<double[]>() {   // subscribes double[]     @override     public void oncompleted() {      }      @override     public void onerror(throwable e) {         log.i(tag, "saporra vai me matar ainda");     }      @override     public void onnext(double[] grades) {         log.i(tag, arrays.tostring(grades));     } }   or put loop onnext
if don't want observable of arrays, use flatmap
Comments
Post a Comment