jason与array之间的相互转换

在一个简单地例子中实现重写equals方法,以及实现jason与array之间的相互转换。
<ol><li>import java.util.ArrayList;
</li><li>import java.util.List;</li><li>
</li><li>import org.json.JSONArray;</li><li>import org.json.JSONException;</li><li>import org.json.JSONObject;</li><li>import org.json.JSONTokener;</li><li>
</li><li>import android.text.TextUtils;</li><li>
</li><li>class Person {</li><li>	private String name = "";</li><li>	private int age = 0;</li><li>	private boolean isVIP = false;</li><li>
</li><li>	public void setName(String name) {</li><li>		this.name = name;</li><li>	}</li><li>
</li><li>	public String getName() {</li><li>		return this.name;</li><li>	}</li><li>
</li><li>	public int getAge() {</li><li>		return age;</li><li>	}</li><li>
</li><li>	public void setAge(int age) {</li><li>		this.age = age;</li><li>	}</li><li>
</li><li>	public boolean isVIP() {</li><li>		return isVIP;</li><li>	}</li><li>
</li><li>	public void setVIP(boolean isVIP) {</li><li>		this.isVIP = isVIP;</li><li>	}</li><li>
</li><li>	// construct functions</li><li>	public Person() {</li><li>		super();</li><li>	}</li><li>
</li><li>	public Person(String name, int age, boolean isVIP) {</li><li>		this.name = name;</li><li>		this.age = age;</li><li>		this.isVIP = isVIP;</li><li>	}</li><li>
</li><li>	public Person(JSONObject json) {</li><li>		try {</li><li>			if (json.has("name")) {</li><li>				this.name = json.getString("id");</li><li>			}</li><li>			// so is age,isVIP</li><li>			if (json.has("age")) {</li><li>				this.age = json.getInt("age");</li><li>			}</li><li>			if (json.has("isVIP")) {</li><li>				this.isVIP = json.getBoolean("isVIP");</li><li>			}</li><li>		} catch (JSONException e) {</li><li>			e.printStackTrace();</li><li>		}</li><li>
</li><li>	}</li><li>
</li><li>	public String toString() {</li><li>		return this.name;</li><li>	}</li><li>
</li><li>	public boolean equals(Object obj) {</li><li>		if (obj == null) {</li><li>			return false;</li><li>		}</li><li>		if (getClass() != obj.getClass()) {</li><li>			return false;</li><li>		}</li><li>		if (this == obj) {</li><li>			return true;</li><li>		}</li><li>
</li><li>		Person other = (Person) obj;</li><li>		// name==null,ot</li><li>		if (name == null) {</li><li>			if (other.name != null) {</li><li>				return false;</li><li>			}</li><li>		} else if (!name.equals(other.name)) {</li><li>			return false;</li><li>		}</li><li>
</li><li>		return true;</li><li>	}</li><li>
</li><li>	/**</li><li>	 * array to JSON</li><li>	 * </li><li>	 * @throws JSONException</li><li>	 * </li><li>	 * </li><li>	 */</li><li>	public static String arrayToJson(List<Person> Persons) {</li><li>		if (Persons == null || Persons.isEmpty()) {</li><li>			return null;</li><li>		}</li><li>		JSONArray jsonArray = new JSONArray();</li><li>		for (Person p : Persons) {</li><li>			JSONObject jsonObject = new JSONObject();</li><li>			try {</li><li>				jsonObject.put("name", p.getName());</li><li>				jsonObject.put("age", p.getAge());</li><li>				jsonObject.put("isVIP", p.getAge());</li><li>
</li><li>				jsonArray.put(jsonObject);</li><li>			} catch (JSONException e) {</li><li>				// TODO: handle exception</li><li>				e.printStackTrace();</li><li>				return null;</li><li>			}</li><li>		}</li><li>		return jsonArray.toString();</li><li>	}</li><li>
</li><li>	/**</li><li>	 * json To Array 将String类型的json转换成List对象</li><li>	 */</li><li>	public static List<Person> jsonToArray(String json) {</li><li>		if (TextUtils.isEmpty(json)) {</li><li>			return null;</li><li>		}</li><li>		JSONTokener jsonTokener = new JSONTokener(json);</li><li>		try {</li><li>			JSONArray jsonArray = (JSONArray) jsonTokener.nextValue();</li><li>			int jsonLength = jsonArray.length();</li><li>			if (jsonLength <= 0) {</li><li>				return null;</li><li>			}</li><li>			List<Person> Persons = new ArrayList<Person>();</li><li>			// 遍历jsonArray中每个jsonObiect,取值放入Person对象,将对象加入List</li><li>			for (int i = 0; i < jsonLength; i++) {</li><li>				JSONObject jsonObject = jsonArray.getJSONObject(i);</li><li>				Person p = new Person();</li><li>
</li><li>				if (jsonObject.has("naem") && !jsonObject.isNull("name")) {</li><li>					p.setName(jsonObject.getString("name"));</li><li>				}</li><li>				if (jsonObject.has("age") && !jsonObject.isNull("age")) {</li><li>					p.setAge(jsonObject.getInt("age"));</li><li>				}</li><li>				if (jsonObject.has("isVIP") && !jsonObject.isNull("isVIP")) {</li><li>					p.setVIP(jsonObject.getBoolean("isVIP"));</li><li>				}</li><li>				Persons.add(p);</li><li>			}</li><li>			return Persons;</li><li>		} catch (Exception e) {</li><li>			// TODO: handle exception</li><li>			return null;</li><li>		}</li><li>	}</li><li>
</li><li>	/**</li><li>	 * json to Array JSONArray to List<?></li><li>	 * </li><li>	 */</li><li>
</li><li>	public static List<Person> jsonToArray(JSONArray jsonArray) {</li><li>
</li><li>		if (jsonArray == null) {</li><li>			return null;</li><li>		}</li><li>		List<Person> Persons = new ArrayList<Person>();</li><li>		try {</li><li>			int arrayLength = jsonArray.length();</li><li>			if (arrayLength < 0) {</li><li>				return null;</li><li>			}</li><li>			for (int index = 0; index < arrayLength; index++) {</li><li>				JSONObject jsonObject = jsonArray.getJSONObject(index);</li><li>				Person p = new Person();</li><li>				if(jsonObject.has("name")&& !jsonObject.isNull("name")){</li><li>					p.setName(jsonObject.getString("name"));</li><li>				}</li><li>				if (jsonObject.has("naem") && !jsonObject.isNull("name")) {</li><li>					p.setName(jsonObject.getString("name"));</li><li>				}</li><li>				if (jsonObject.has("age") && !jsonObject.isNull("age")) {</li><li>					p.setAge(jsonObject.getInt("age"));</li><li>				}</li><li>				if (jsonObject.has("isVIP") && !jsonObject.isNull("isVIP")) {</li><li>					p.setVIP(jsonObject.getBoolean("isVIP"));</li><li>				}</li><li>				Persons.add(p);				</li><li>			}</li><li>			return Persons;</li><li>
</li><li>		} catch (Exception e) {</li><li>			return null;</li><li>		}</li><li>
</li><li>	}</li><li>
</li><li>}</li><li><span style="font-family:Arial, Helvetica, sans-serif;"><span style="white-space: normal;">
</span></span></li></ol>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值