改造 - JSON 数组解析
Posted
技术标签:
【中文标题】改造 - JSON 数组解析【英文标题】:Retrofit - JSON Array Parsing 【发布时间】:2016-04-27 12:06:24 【问题描述】:我正在使用 Retrofit
解析 JSON Array
,其中 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();
【问题讨论】:
使用jsonschema2pojo.org将你的json转换成pojo @JacksonChengalai 是对的 但我的问题是为什么我在输出中得到 [] @Oreo 其实value.getHobbies();
直接返回一个List
和[ ]
。更好的iterate
它并使用StringBuilder
显示
@MD 请把它作为你的答案发布,然后我会接受那个。
【参考方案1】:
其实value.getHobbies();
直接返回一个List
和[ ]
。更好的iterate
它并使用StringBuilder
显示
【讨论】:
【参考方案2】:MD 和杰克逊是对的。 Object.toString()
方法返回一个“以文本形式表示”该对象的字符串。因此,对于您的情况,爱好是一个数组列表,因此文本表示将带有[]
。 ;)
编辑:
您可能希望为此使用 for 循环:
for (String hobby : hobbies)
// Do something with hobby here
【讨论】:
谢谢,我已经完成了这个,但很抱歉这次会接受@MD的回答,因为他首先向我展示了获得它的方法.. :) 但我认为你的回答很有用,我也用于每个循环... 尝试使用 StringBuilder,stringBuilder.append(value)
将您的值连接在一起。那么只有你做learningTV.setText(stringBuilder.toString());
你好,伙计。看看这个:***.com/questions/35522662/…以上是关于改造 - JSON 数组解析的主要内容,如果未能解决你的问题,请参考以下文章