Android Json uses jsonschema2pojo to generate a. java File
Summary
How to quickly develop android applications with json. Defining specific java beans corresponding to json by yourself. parsing Json with the json library that comes with Android is very cumbersome. So here I introduce a tool and a library.
Jsonschema2pojo: More json can automatically generate the corresponding javaclasses (http://code.google.com/p/jsonschema2pojo)
Jackson: You can convert a java object to json or a java object. (Www.bkjia.com)
Jsonschema2pojo
We use the command line mode to generate javaclasses from json
Decompress the downloaded version and you will see many jsonschema2pojo jar files, one lib folder and two script files. Put the json file you want to use in the decompressed directory (you can download the jsonexample at http://www.json-schema.org/address): then enter:
Jsonschema2pojo -- source address -- target java-gen
You can enter the-help option to view other parameters:
Jsonschema2pojo-help
For some non-standard Json files, you need to add the-T parameter
Jsonschema2pojo -- source address -- target java-gen-t json-a NONE
Now you can find the generated java class file under the java-gen folder. To use these class files in an Android project, you need to delete @ Generated (com. googlecode. jsonschema2pojo). Note: address is the json data to be converted.
Example:
Json data test. json of weather forecast
{Weatherinfo: {city: Zhuhai, cityid: 101280701, temp1: 14 ℃, temp2: 19 ℃, weather: Cloudy, img1: n1.gif, img2: d1.gif, ptime }}
After the conversion, the following entity classes are generated to automatically generate the Weatherinfo. java file, which does not need to be named by myself. If this class is taken directly, there will be some errors. You can simply remove the errors and use them.
import java.util.HashMap;import java.util.Map;import javax.annotation.Generated;import org.apache.commons.lang.builder.EqualsBuilder;import org.apache.commons.lang.builder.HashCodeBuilder;import org.apache.commons.lang.builder.ToStringBuilder;@Generated(org.jsonschema2pojo)public class Weatherinfo { private String city; private String cityid; private String temp1; private String temp2; private String weather; private String img1; private String img2; private String ptime; private Map
additionalProperties = new HashMap
(); /** * * @return * The city */ public String getCity() { return city; } /** * * @param city * The city */ public void setCity(String city) { this.city = city; } /** * * @return * The cityid */ public String getCityid() { return cityid; } /** * * @param cityid * The cityid */ public void setCityid(String cityid) { this.cityid = cityid; } /** * * @return * The temp1 */ public String getTemp1() { return temp1; } /** * * @param temp1 * The temp1 */ public void setTemp1(String temp1) { this.temp1 = temp1; } /** * * @return * The temp2 */ public String getTemp2() { return temp2; } /** * * @param temp2 * The temp2 */ public void setTemp2(String temp2) { this.temp2 = temp2; } /** * * @return * The weather */ public String getWeather() { return weather; } /** * * @param weather * The weather */ public void setWeather(String weather) { this.weather = weather; } /** * * @return * The img1 */ public String getImg1() { return img1; } /** * * @param img1 * The img1 */ public void setImg1(String img1) { this.img1 = img1; } /** * * @return * The img2 */ public String getImg2() { return img2; } /** * * @param img2 * The img2 */ public void setImg2(String img2) { this.img2 = img2; } /** * * @return * The ptime */ public String getPtime() { return ptime; } /** * * @param ptime * The ptime */ public void setPtime(String ptime) { this.ptime = ptime; } @Override public String toString() { return ToStringBuilder.reflectionToString(this); } public Map
getAdditionalProperties() { return this.additionalProperties; } public void setAdditionalProperty(String name, Object value) { this.additionalProperties.put(name, value); } @Override public int hashCode() { return new HashCodeBuilder().append(city).append(cityid).append(temp1).append(temp2).append(weather).append(img1).append(img2).append(ptime).append(additionalProperties).toHashCode(); } @Override public boolean equals(Object other) { if (other == this) { return true; } if ((other instanceof Weatherinfo) == false) { return false; } Weatherinfo rhs = ((Weatherinfo) other); return new EqualsBuilder().append(city, rhs.city).append(cityid, rhs.cityid).append(temp1, rhs.temp1).append(temp2, rhs.temp2).append(weather, rhs.weather).append(img1, rhs.img1).append(img2, rhs.img2).append(ptime, rhs.ptime).append(additionalProperties, rhs.additionalProperties).isEquals(); }}