整个项目在附件中。包括服务器端,首先要在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();
}
}
}
分享到:
相关推荐
Android Json 解析demo 建立,基于Android stdio
android 项目开发实例,json 解析参考, 希望对你们有用
android json解析demo,简单粗暴
android json 解析jar包。没有积分可以取GitHub上下载
Android_JSON数据解析 博客里面的Demo
Android json解析jar包,挺方便的解析jar包。
AndroidJSON解析框架GSON,可以方便的解析JSON,提高效率,欢迎大家下载使用。
Android JSON解析示例代码.txt
android JSon解析例子,希望可以帮助大家。
android框架解析JSON数据放入ListView的例子
Android JSON 解析库的使用 里面包括详细的文档和代码 其中fastjson和gson的对比以及示例代码
android json 解析 fastjson。
通过编写配置文件,该代码生成器能自动生成相应的bean,和解析json的代码。 你需要做的是,有一个ruby环境,将配置...生成json解析代码: ruby json_parser.rb > JSONParser.java 不使用重定向,模式是打印在终端中。
Android JSON解析
eclipse项目。获取raw文件下的json文件。无需编写json数据里面key值的实体类,动态获取里面的键值对的值。并在列表显示
笔者近期做到对天气预报JSON数据解析,在此小记。 天气预报接口:http://wthrcdn.etouch.cn/weather_mini?citykey=101200101 JSON数据如下: { desc: OK, status: 1000, data: { wendu: 14, ganmao: 天气...
我们通常在Android上采用Gson来解析Json数据,很方便的就可以把数据转换成List或者map。当碰到日期时间的时候,你可能会遇到坑,需要格式化一下日期时间格式。 本文介绍org.json这种不需要导入任何包的解析方式,...
android移动应用的json解析数据,解析对象和数组
android json数据下载与解析demo,实现了http下载json服务器数据,并通过JsonObject解析json数据