Android Moshi JsonAdapter для массива объектов - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть набор сервлетов, которые передают обратно массив объектов, таких как

 text=[{"sPK":1,"sName":"foobar","cFlag":0},
       {"sPK":5,"sName":"barfoo","cFlag":1}]

В приложении Java я использую org.fasterXML.Jackson, чтобы читать json и читать массивы такого типа, которые я использую

ObjectMapper m = new ObjectMappar();
SClass[] ss = m.readValue(response.getResponse(), SClass[].class);

Если я попробую что-то подобное, используя Moshi

JsonAdapter sJsonAdapter = moshi.adapter (sClass []. Class);

Приложение не работает, есть ли способчтобы сделать это с помощью Моши?

1 Ответ

0 голосов
/ 19 декабря 2018

Если вы хотите использовать Moshi, создайте класс с именем ServletsResponse и добавьте это

public class ServletsResponse{

@Json(name = "sPK")
private Integer sPK;
@Json(name = "sName")
private String sName;
@Json(name = "cFlag")
private Integer cFlag;

public Integer getSPK() {
return sPK;
}

public void setSPK(Integer sPK) {
this.sPK = sPK;
}

public String getSName() {
return sName;
}

public void setSName(String sName) {
this.sName = sName;
}

public Integer getCFlag() {
return cFlag;
}

public void setCFlag(Integer cFlag) {
this.cFlag = cFlag;
}

}

И затем вы сможете проанализировать его, выполнив:

Moshi moshi = new Moshi.Builder().build();
JsonAdapter<ServletsResponse> jsonAdapter = moshi.adapter(ServletsResponse.class);

ServletsResponse servletResponse = jsonAdapter.fromJson(json);
System.out.println(servletResponse );
...