android 获取网络json,android通过网络获取json数据

Android通过网络获取并解析JSON数据教程
这篇博客展示了如何在Android应用中从网络获取JSON数据并进行解析。作者提供了完整的代码示例,包括使用DefaultHttpClient发送HTTP请求,读取响应,并用JSONArray和JSONObject解析数据。同时提醒读者不要忘记在XML中添加访问网络的Intent权限。

刚开始学习android为了找到android通过网络获取json数据的例子找了很长的时间,很多都是不行,或者运行不了的例子,下面我就把我整理的完整可以运行的列子展示给大家,同时别忘了在xml开启访问Intent权限,如果没有是不行的。

public class MainActivity extends Activity {

private TextView my_content;

private String url = “http://www.wangzhiguang.com.cn/test.php”;

@Override

public void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

my_content = (TextView)findViewById(R.id.my_content);

Button mybutton = (Button)findViewById(R.id.mybutton);

mybutton.setText(“点击按钮获取博客内容”);

mybutton.setOnClickListener(new mybuttonListener());

}

private class mybuttonListener implements OnClickListener{

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

try {

StringBuffer sb = new StringBuffer();

// 在测试过程中

String body = getContent(url);

JSONArray array = new JSONArray(body);

for (int i = 0; i < array.length(); i++) {

JSONObject obj = array.getJSONObject(i);

sb.append(“id:”).append(obj.getInt(“id”)).append(“\t”);

sb.append(“name:”).append(obj.getString(“name”)).append(“\r\n”);

sb.append(“gender:”).append(obj.getString(“gender”)).append(“\t”);

sb.append(“email:”).append(obj.getString(“email”)).append(“\r\n”);

sb.append(“———————-\r\n”);

}

my_content.setText(sb.toString());

} catch (Exception e) {

// TODO: handle exception

}

}

}

private String getContent(String url) throws Exception {

StringBuilder sb = new StringBuilder();

HttpClient client = new DefaultHttpClient();

HttpParams httpParams = client.getParams();

// 设置网络超时参数

HttpConnectionParams.setConnectionTimeout(httpParams, 3000);

HttpConnectionParams.setSoTimeout(httpParams, 5000);

HttpResponse response = client.execute(new HttpGet(url));

HttpEntity entity = response.getEntity();

if (entity != null) {

BufferedReader reader = new BufferedReader(new InputStreamReader(entity.getContent(), “UTF-8”), 8192);

String line = null;

while ((line = reader.readLine()) != null) {

sb.append(line + “\n”);

}

reader.close();

}

return sb.toString();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值