Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 改型-JSON数组解析_Java_Android_Arrays_Json_Retrofit - Fatal编程技术网

Java 改型-JSON数组解析

Java 改型-JSON数组解析,java,android,arrays,json,retrofit,Java,Android,Arrays,Json,Retrofit,我正在使用改型解析JSON数组,其中JSON数组如下所示: "hobbies": [ "Music", "Reading"] { "type":"success", "value":[ { "id":1, "title":"Title - 1", "name":{ "first":"First - 1", "last":"Last - 1"

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

"hobbies": [ "Music", "Reading"]
{
    "type":"success",
    "value":[
        {
            "id":1,
            "title":"Title - 1",
         "name":{
            "first":"First - 1",
            "last":"Last - 1"
         },
            "hobbies":[
                "Writing Code - 1",
            "Listening Music - 1"
            ]
        },
       .....
    ]
}
下面是我的
JSON
的样子:

"hobbies": [ "Music", "Reading"]
{
    "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>();
viewHolder.hobbies.setText(value.getHobbies().toString());
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;
    }
}
public interface Service {

   @GET("/demo_retrofit.json")
   Observable<Master> getMaster();
}
当我运行我的程序时,我正在
获取数据
,如下所示:

[Music, Reading]
所以,问题
为什么
我在输出中也得到了
[]

Value.java

private List<String> hobbies = new ArrayList<String>();
viewHolder.hobbies.setText(value.getHobbies().toString());
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;
    }
}
public interface Service {

   @GET("/demo_retrofit.json")
   Observable<Master> getMaster();
}
公共类值{
@序列化名称(“id”)
@暴露
私有整数id;
@序列化名称(“标题”)
@暴露
私有字符串标题;
@序列化名称(“爱好”)
@暴露
私人列表嗜好=新建ArrayList();
@序列化名称(“名称”)
@暴露
私人姓名;
.....
公众兴趣爱好列表(){
回归爱好;
}
公共爱好(列出爱好){
这个。爱好=爱好;
}
}
Service.java

private List<String> hobbies = new ArrayList<String>();
viewHolder.hobbies.setText(value.getHobbies().toString());
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;
    }
}
public interface Service {

   @GET("/demo_retrofit.json")
   Observable<Master> getMaster();
}
公共接口服务{
@GET(“/demo\u reformation.json”)
可观察的getMaster();
}

MD和Jackson是对的
Object.toString()
方法返回“文本表示”此对象的字符串。因此,对于您的情况,嗜好是一个数组列表,因此文本表示将带有
[]
。)

编辑:

您可能希望为此使用for循环:

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

实际上
value.getHabiods()
直接返回带有
[]
列表
。最好使用
StringBuilder

将json转换为pojo@JacksonChengalai是的,但我的问题是我为什么要进去output@Oreo实际上
value.getHabiods()
直接返回带有
[]
列表
。更好的
迭代
并使用
StringBuilder
@MD显示。请将其作为您的答案发布,然后我将接受该答案。谢谢,我已经完成了此操作,但很抱歉,这次将接受@MD的答案,因为他首先向我展示了获取答案的方法:)但是我勾选了你的答案作为有用的,我也用于每个循环…尝试使用StringBuilder,
StringBuilder.append(value)
将你的值连接在一起。然后只有您才能
learningTV.setText(stringBuilder.toString())你好,伙计。看看这个: