`
evilwicker
  • 浏览: 63287 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类

Android Json解析

阅读更多
整个项目在附件中。包括服务器端,首先要在server.properties中配置你的机器的IP地址,不可以localhost或者127.0.0.7

单数据{'singer':{'id':01,'name':'刘德华','gender':'男'}}
多个数据{"singers":[
        {'id':02,'name':'刘德华','gender':'男'},
         {'id':03,'name':'uuuuu,'gender':'男'},
{'id':04,'name':'ffff,'gender':'男'},
{'id':05,'name':'yyyyy,'gender':'男'}]}

public class JsonActivity extends Activity {
/** Called when the activity is first created. */
private TextView tvJson;
private Button btnJson;
private Button btnJson1;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

tvJson = (TextView) this.findViewById(R.id.tvJson);


btnJson = (Button) this.findViewById(R.id.btnJson);

btnJson.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// url
// String strUrl = "http://10.158.166.110:8080/AndroidServer/JsonServlet";
String strUrl = ServerPageUtil.getStrUrl(UrlsOfServer.JSON_SINGER);
//获得返回的Json字符串
String strResult = connServerForResult(strUrl);
//解析Json字符串
parseJson(strResult);
}
});

btnJson1 = (Button) this.findViewById(R.id.btnJson1);

btnJson1.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// url
String strUrl = ServerPageUtil.getStrUrl(UrlsOfServer.JSON_SINGERS);
//获得Json字符串
String strResult = connServerForResult(strUrl);
//获得Json的解析
// parseJson(strResult);
//获得多个Singer
parseJsons(strResult);

}
});
}

private String connServerForResult(String strUrl) {

// HttpGet对象
HttpGet httpRequest = new HttpGet(strUrl);
String strResult = "";
try {
// HttpClient对象
HttpClient httpClient = new DefaultHttpClient();

// 获得HttpResponse对象
HttpResponse httpResponse = httpClient.execute(httpRequest);
if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
// 取得返回的数据
strResult = EntityUtils.toString(httpResponse.getEntity());
// System.out.println(strResult);
// tvJson.setText(strResult);
}
} catch (ClientProtocolException e) {
tvJson.setText("protocol error");
e.printStackTrace();
} catch (IOException e) {
tvJson.setText("IO error");
e.printStackTrace();
}
return strResult;
}

// 普通Json数据解析
private void parseJson(String strResult) {
try {
JSONObject jsonObj = new JSONObject(strResult)
.getJSONObject("singer");
int id = jsonObj.getInt("id");
String name = jsonObj.getString("name");
String gender = jsonObj.getString("gender");
tvJson.setText(id + "," + name + ";" + gender);
} catch (JSONException e) {
System.out.println("Json parse error");
e.printStackTrace();
}
}

private void parseJsons(String strResult) {
try {
JSONArray jsonObjs = new JSONObject(strResult).getJSONArray("singers");
String s = "";
for(int i = 0; i < jsonObjs.length() ; i++){
JSONObject jsonObj = ((JSONObject)jsonObjs.opt(i))
.getJSONObject("singer");

int id = jsonObj.getInt("id");
String name = jsonObj.getString("name");
String gender = jsonObj.getString("gender");

s +=  id + "," + name + "," + gender + "\n" ;

}
tvJson.setText(s);
} catch (JSONException e) {
System.out.println("Jsons parse error !");
e.printStackTrace();
}
}
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics