我parsing
简单 JSON ,如下所示:
if (status == 200) {
HttpEntity entity = response.getEntity();
String data = EntityUtils.toString(entity);
JSONObject jsono = new JSONObject(data);
JSONArray jarray = jsono.getJSONArray("actors");
for (int i = 0; i < jarray.length(); i++) {
JSONObject object = jarray.getJSONObject(i);
Actors actor = new Actors();
actor.setName(object.getString("name"));
actor.setImage(object.getString("image"));
actorsList.add(actor);
}
return true;
}
以下是使用 AsyncTask 执行的JSON
链接:
new JSONAsyncTask().execute("http://microblogging.wingnity.com/JSONParsingTutorial/jsonActors");
但现在我必须parse Youtube JSON Playlist
:
http://gdata.youtube.com/feeds/api/playlists/PLWz5rJ2EKKc9ofd2f-_-xmUi07wIGZa1c?v=2&alt=jsonc
我需要提取一些内容,例如:Title
,Thumbnail
,Link
每个视频
POJO的:
public class Actors {
private String name;
private String image;
public Actors() {
}
public Actors(String name, String image) {
super();
this.name = name;
this.image = image;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
}
答案 0 :(得分:0)
你得到这样的回复( IMPT 使用ChannelId播放列表响应(查询参数))
{
"kind": "youtube#playlistListResponse",
"etag": "\"Y3xTLFF3RLtHXX85JBgzzgp2Enw/O8-3nTBpPVrsEjyg6BXeSSO2pU0\"",
"pageInfo": {
"totalResults": 3,
"resultsPerPage": 5
},
"items": [
{
"kind": "youtube#playlist",
"etag": "\"Y3xTLFF3RLtHXX85JBgzzgp2Enw/06IYq1oWiveiXSEbF8J6Ucf9LYs\"",
"id": "PLFE56E5CE58D71A55",
"snippet": {
"publishedAt": "2012-04-05T17:01:18.000Z",
"channelId": "UCjXfkj5iapKHJrhYfAF9ZGg",
"title": "T&T Elite Canada 2012, April 4, 2012",
"description": "",
"thumbnails": {
"default": {
"url": "https://i.ytimg.com/vi/default.jpg"
},
"medium": {
"url": "https://i.ytimg.com/vi/default.jpg"
},
"high": {
"url": "https://i.ytimg.com/vi/default.jpg"
}
},
"channelTitle": "AlbertaGymnastics",
"localized": {
"title": "T&T Elite Canada 2012, April 4, 2012",
"description": ""
}
}
}, ... and more items..}
现在为上面的json响应创建一个pojo,并从items
array
答案 1 :(得分:0)
基于@ bharat的回答(注意不同的类)
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Generated;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@Generated("org.jsonschema2pojo")
@JsonPropertyOrder({ "url" })
public class Default {
@JsonProperty("url")
private String url;
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
/**
*
* @return The url
*/
@JsonProperty("url")
public String getUrl() {
return url;
}
/**
*
* @param url
* The url
*/
@JsonProperty("url")
public void setUrl(String url) {
this.url = url;
}
@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}
@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
}
package com.example;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Generated;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@Generated("org.jsonschema2pojo")
@JsonPropertyOrder({ "kind", "etag", "pageInfo", "items" })
public class Example {
@JsonProperty("kind")
private String kind;
@JsonProperty("etag")
private String etag;
@JsonProperty("pageInfo")
private PageInfo pageInfo;
@JsonProperty("items")
private List<Item> items = new ArrayList<Item>();
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
/**
*
* @return The kind
*/
@JsonProperty("kind")
public String getKind() {
return kind;
}
/**
*
* @param kind
* The kind
*/
@JsonProperty("kind")
public void setKind(String kind) {
this.kind = kind;
}
/**
*
* @return The etag
*/
@JsonProperty("etag")
public String getEtag() {
return etag;
}
/**
*
* @param etag
* The etag
*/
@JsonProperty("etag")
public void setEtag(String etag) {
this.etag = etag;
}
/**
*
* @return The pageInfo
*/
@JsonProperty("pageInfo")
public PageInfo getPageInfo() {
return pageInfo;
}
/**
*
* @param pageInfo
* The pageInfo
*/
@JsonProperty("pageInfo")
public void setPageInfo(PageInfo pageInfo) {
this.pageInfo = pageInfo;
}
/**
*
* @return The items
*/
@JsonProperty("items")
public List<Item> getItems() {
return items;
}
/**
*
* @param items
* The items
*/
@JsonProperty("items")
public void setItems(List<Item> items) {
this.items = items;
}
@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}
@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
}
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Generated;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@Generated("org.jsonschema2pojo")
@JsonPropertyOrder({ "url" })
public class High {
@JsonProperty("url")
private String url;
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
/**
*
* @return The url
*/
@JsonProperty("url")
public String getUrl() {
return url;
}
/**
*
* @param url
* The url
*/
@JsonProperty("url")
public void setUrl(String url) {
this.url = url;
}
@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}
@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
}
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Generated;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@Generated("org.jsonschema2pojo")
@JsonPropertyOrder({ "kind", "etag", "id", "snippet" })
public class Item {
@JsonProperty("kind")
private String kind;
@JsonProperty("etag")
private String etag;
@JsonProperty("id")
private String id;
@JsonProperty("snippet")
private Snippet snippet;
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
/**
*
* @return The kind
*/
@JsonProperty("kind")
public String getKind() {
return kind;
}
/**
*
* @param kind
* The kind
*/
@JsonProperty("kind")
public void setKind(String kind) {
this.kind = kind;
}
/**
*
* @return The etag
*/
@JsonProperty("etag")
public String getEtag() {
return etag;
}
/**
*
* @param etag
* The etag
*/
@JsonProperty("etag")
public void setEtag(String etag) {
this.etag = etag;
}
/**
*
* @return The id
*/
@JsonProperty("id")
public String getId() {
return id;
}
/**
*
* @param id
* The id
*/
@JsonProperty("id")
public void setId(String id) {
this.id = id;
}
/**
*
* @return The snippet
*/
@JsonProperty("snippet")
public Snippet getSnippet() {
return snippet;
}
/**
*
* @param snippet
* The snippet
*/
@JsonProperty("snippet")
public void setSnippet(Snippet snippet) {
this.snippet = snippet;
}
@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}
@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
}
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Generated;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@Generated("org.jsonschema2pojo")
@JsonPropertyOrder({ "title", "description" })
public class Localized {
@JsonProperty("title")
private String title;
@JsonProperty("description")
private String description;
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
/**
*
* @return The title
*/
@JsonProperty("title")
public String getTitle() {
return title;
}
/**
*
* @param title
* The title
*/
@JsonProperty("title")
public void setTitle(String title) {
this.title = title;
}
/**
*
* @return The description
*/
@JsonProperty("description")
public String getDescription() {
return description;
}
/**
*
* @param description
* The description
*/
@JsonProperty("description")
public void setDescription(String description) {
this.description = description;
}
@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}
@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
}
@JsonInclude(JsonInclude.Include.NON_NULL)
@Generated("org.jsonschema2pojo")
@JsonPropertyOrder({ "url" })
public class Medium {
@JsonProperty("url")
private String url;
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
/**
*
* @return The url
*/
@JsonProperty("url")
public String getUrl() {
return url;
}
/**
*
* @param url
* The url
*/
@JsonProperty("url")
public void setUrl(String url) {
this.url = url;
}
@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}
@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
}
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Generated;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@Generated("org.jsonschema2pojo")
@JsonPropertyOrder({ "totalResults", "resultsPerPage" })
public class PageInfo {
@JsonProperty("totalResults")
private Integer totalResults;
@JsonProperty("resultsPerPage")
private Integer resultsPerPage;
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
/**
*
* @return The totalResults
*/
@JsonProperty("totalResults")
public Integer getTotalResults() {
return totalResults;
}
/**
*
* @param totalResults
* The totalResults
*/
@JsonProperty("totalResults")
public void setTotalResults(Integer totalResults) {
this.totalResults = totalResults;
}
/**
*
* @return The resultsPerPage
*/
@JsonProperty("resultsPerPage")
public Integer getResultsPerPage() {
return resultsPerPage;
}
/**
*
* @param resultsPerPage
* The resultsPerPage
*/
@JsonProperty("resultsPerPage")
public void setResultsPerPage(Integer resultsPerPage) {
this.resultsPerPage = resultsPerPage;
}
@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}
@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
}
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Generated;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@Generated("org.jsonschema2pojo")
@JsonPropertyOrder({ "publishedAt", "channelId", "title", "description", "thumbnails", "channelTitle", "localized" })
public class Snippet {
@JsonProperty("publishedAt")
private String publishedAt;
@JsonProperty("channelId")
private String channelId;
@JsonProperty("title")
private String title;
@JsonProperty("description")
private String description;
@JsonProperty("thumbnails")
private Thumbnails thumbnails;
@JsonProperty("channelTitle")
private String channelTitle;
@JsonProperty("localized")
private Localized localized;
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
/**
*
* @return The publishedAt
*/
@JsonProperty("publishedAt")
public String getPublishedAt() {
return publishedAt;
}
/**
*
* @param publishedAt
* The publishedAt
*/
@JsonProperty("publishedAt")
public void setPublishedAt(String publishedAt) {
this.publishedAt = publishedAt;
}
/**
*
* @return The channelId
*/
@JsonProperty("channelId")
public String getChannelId() {
return channelId;
}
/**
*
* @param channelId
* The channelId
*/
@JsonProperty("channelId")
public void setChannelId(String channelId) {
this.channelId = channelId;
}
/**
*
* @return The title
*/
@JsonProperty("title")
public String getTitle() {
return title;
}
/**
*
* @param title
* The title
*/
@JsonProperty("title")
public void setTitle(String title) {
this.title = title;
}
/**
*
* @return The description
*/
@JsonProperty("description")
public String getDescription() {
return description;
}
/**
*
* @param description
* The description
*/
@JsonProperty("description")
public void setDescription(String description) {
this.description = description;
}
/**
*
* @return The thumbnails
*/
@JsonProperty("thumbnails")
public Thumbnails getThumbnails() {
return thumbnails;
}
/**
*
* @param thumbnails
* The thumbnails
*/
@JsonProperty("thumbnails")
public void setThumbnails(Thumbnails thumbnails) {
this.thumbnails = thumbnails;
}
/**
*
* @return The channelTitle
*/
@JsonProperty("channelTitle")
public String getChannelTitle() {
return channelTitle;
}
/**
*
* @param channelTitle
* The channelTitle
*/
@JsonProperty("channelTitle")
public void setChannelTitle(String channelTitle) {
this.channelTitle = channelTitle;
}
/**
*
* @return The localized
*/
@JsonProperty("localized")
public Localized getLocalized() {
return localized;
}
/**
*
* @param localized
* The localized
*/
@JsonProperty("localized")
public void setLocalized(Localized localized) {
this.localized = localized;
}
@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}
@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
}
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Generated;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@Generated("org.jsonschema2pojo")
@JsonPropertyOrder({ "default", "medium", "high" })
public class Thumbnails {
@JsonProperty("default")
private Default _default;
@JsonProperty("medium")
private Medium medium;
@JsonProperty("high")
private High high;
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
/**
*
* @return The _default
*/
@JsonProperty("default")
public Default getDefault() {
return _default;
}
/**
*
* @param _default
* The default
*/
@JsonProperty("default")
public void setDefault(Default _default) {
this._default = _default;
}
/**
*
* @return The medium
*/
@JsonProperty("medium")
public Medium getMedium() {
return medium;
}
/**
*
* @param medium
* The medium
*/
@JsonProperty("medium")
public void setMedium(Medium medium) {
this.medium = medium;
}
/**
*
* @return The high
*/
@JsonProperty("high")
public High getHigh() {
return high;
}
/**
*
* @param high
* The high
*/
@JsonProperty("high")
public void setHigh(High high) {
this.high = high;
}
@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}
@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
}
或DIY,例如使用http://www.jsonschema2pojo.org/