改造 - JSON阵列解析

时间:2016-01-21 09:57:32

标签: java android arrays json retrofit

我正在使用Array解析JSON Retrofit,其中JSON数组如下所示:

"hobbies": [ "Music", "Reading"]

以下是我JSON的样子:

{
    "type":"success",
    "value":[
        {
            "id":1,
            "title":"Title - 1",
         "name":{
            "first":"First - 1",
            "last":"Last - 1"
         },
            "hobbies":[
                "Writing Code - 1",
            "Listening Music - 1"
            ]
        },
       .....
    ]
}

Value.java

private List<String> hobbies = new ArrayList<String>();

Adapter.java

viewHolder.hobbies.setText(value.getHobbies().toString());

当我运行我的程序时,我getting data如下所示:

[Music, Reading]

所以,问题Why我的输出也是[]

Value.java

public class Value {

    @SerializedName("id")
    @Expose
    private Integer id;

    @SerializedName("title")
    @Expose
    private String title;

    @SerializedName("hobbies")
    @Expose
    private List<String> hobbies = new ArrayList<String>();

    @SerializedName("name")
    @Expose
    private Name name;

    .....

    public List<String> getHobbies() {
        return hobbies;
    }

    public void setHobbies(List<String> hobbies) {
        this.hobbies = hobbies;
    }
}

Service.java

public interface Service {

   @GET("/demo_retrofit.json")
   Observable<Master> getMaster();
}

2 个答案:

答案 0 :(得分:3)

实际上value.getHobbies();直接返回List [ ]。更好iterate它并使用StringBuilder

显示

答案 1 :(得分:1)

MD和杰克逊是对的。 Object.toString()方法返回一个&#34;文本表示&#34;的字符串。这个对象。所以对于你的情况,爱好是一个arrayList所以文本表示将有[]。 ;)

编辑:

你可能想要使用for循环:

for (String hobby : hobbies) {
    // Do something with hobby here
}