package com.google.mcommerce.sample.android.chapter11.json;
import java.util.ArrayList;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import com.google.mcommerce.sample.android.R;
import com.google.mcommerce.sample.android.chapter11.entity.User;
import com.google.mcommerce.sample.android.chapter11.xml.XMLUtil;
public class ParseJSONActivity extends Activity {
/** Called when the activity is first created. */
private static final String TAG = "ParseJSONActivity";
private TextView textViewSingleCity;
private TextView textViewSingleNick;
private TextView textViewMultiCity;
private TextView textViewMultiNick;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.c11_parse_json_layout);
textViewSingleCity = (TextView) findViewById(R.id.textView1);
textViewSingleNick = (TextView) findViewById(R.id.textView4);
textViewMultiCity = (TextView) findViewById(R.id.textView6);
textViewMultiNick = (TextView) findViewById(R.id.textView8);
// 返回单个用户
String userUrl = "http://gw.api.taobao.com/router/rest?sign=EF87CC42B707AFF1234FF8782113CDFB×tamp=2012-08-13+20%3A50%3A28&v=2.0&app_key=12129701&method=taobao.user.get&partner_id=top-apitools&format=json&nick=lihaifeng555&fields=user_id,uid,nick,sex,buyer_credit,seller_credit,location,created,last_visit,birthday,type,status,alipay_no,alipay_account,alipay_account,email,consumer_protection,alipay_bind";
String userString = XMLUtil.getStringByUrl(userUrl);
Log.i("ParseJSONActivity", userString);
// 返回多个用户
User user = readSingleUser(userString);
textViewSingleCity.setText(user.getCity());
textViewSingleNick.setText(user.getNick());
String usersUrl = "http://gw.api.taobao.com/router/rest?sign=BDD6F4A3DDBF2F42AB67530CBD6ACBCB×tamp=2012-08-21+23%3A06%3A04&v=2.0&app_key=12129701&method=taobao.users.get&partner_id=top-apitools&format=json&nicks=lihaifeng555,andyy_tan&fields=user_id,nick,sex,buyer_credit,seller_credit,location,created,last_visit";
String usersString = XMLUtil.getStringByUrl(usersUrl);
Log.i("ParseJSONActivity", usersString);
ArrayList<User> users = readMultiUser(usersString);
for (User u : users) {
textViewMultiCity.append(u.getCity() + ";");
textViewMultiNick.append(u.getNick() + ";");
}
}
// 普通Json数据解析
private User readSingleUser(String strResult) {
User user = new User();
try {
// 获取用户对象
JSONObject jsonUserObj = new JSONObject(strResult).getJSONObject(
"user_get_response").getJSONObject("user");
user.setNick(jsonUserObj.getString("nick"));
JSONObject jsonLocationObj = jsonUserObj.getJSONObject("location");
user.setCity(jsonLocationObj.getString("city"));
} catch (JSONException e) {
System.out.println("Json parse error");
e.printStackTrace();
}
return user;
}
// 解析多个数据的Json
private ArrayList<User> readMultiUser(String strResult) {
ArrayList<User> users = new ArrayList<User>();
try {
JSONArray jsonObjs = new JSONObject(strResult)
.getJSONObject("users_get_response").getJSONObject("users")
.getJSONArray("user");
for (int i = 0; i < jsonObjs.length(); i++) {
JSONObject jsonUserObj = ((JSONObject) jsonObjs.opt(i));
User user = new User();
user.setNick(jsonUserObj.getString("nick"));
JSONObject jsonLocationObj = jsonUserObj
.getJSONObject("location");
user.setCity(jsonLocationObj.getString("city"));
users.add(user);
}
} catch (JSONException e) {
System.out.println("Jsons parse error !");
e.printStackTrace();
}
return users;
}
}