android通过httpClient请求获取JSON数据并且解析
使用.net创建一个ashx文件,并response.write json格式

public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
StringBuilder jsonBuilder = new StringBuilder();
jsonBuilder.Append("{\"parent\":");
jsonBuilder.Append("{\"children\":");
jsonBuilder.Append("[");
jsonBuilder.Append("{\"id\":\"11111\",\"title\":\"aaaaaaa\",\"name\":\"111111111aaaaaaaaaa\"},");
jsonBuilder.Append("{\"id\":\"22222\",\"title\":\"bbbbbbb\",\"name\":\"222222222aaaaaaaaaa\"},");
jsonBuilder.Append("{\"id\":\"33333\",\"title\":\"ccccccc\",\"name\":\"33333333aaaaaaaaaa\"}");
jsonBuilder.Append("]}}");
context.Response.Write(jsonBuilder.ToString());
}

android代码

public class HttpClient_Get_Activity extends Activity {
public TextView myTextView = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.setContentView(R.layout.httpget_httpclient_activity);
Button btn = (Button)this.findViewById(R.id.button1);
btn.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
new ReadHttpGet().execute("http://190.160.10.79:7890/handler1.ashx");
}
});
}
class ReadHttpGet extends AsyncTask<Object, Object, Object>
{
@Override
protected Object doInBackground(Object... params) {
// TODO Auto-generated method stub
HttpGet httpRequest = new HttpGet(params[0].toString());
try
{
HttpClient httpClient = new DefaultHttpClient();
HttpResponse httpResponse = httpClient.execute(httpRequest);
if(httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK)
{
String strResult = EntityUtils.toString(httpResponse.getEntity());
return strResult;
}
else
{
return "请求出错";
}
}
catch(ClientProtocolException e)
{
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
protected void onCancelled(Object result) {
// TODO Auto-generated method stub
super.onCancelled(result);
}
@Override
protected void onPostExecute(Object result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
try
{
//创建一个JSON对象
JSONObject jsonObject = new JSONObject(result.toString()).getJSONObject("parent");
//获取某个对象的JSON数组
JSONArray jsonArray = jsonObject.getJSONArray("children");
StringBuilder builder = new StringBuilder();
for(int i = 0; i<jsonArray.length(); i++)
{
//新建一个JSON对象,该对象是某个数组里的其中一个对象
JSONObject jsonObject2 = (JSONObject)jsonArray.opt(i);
builder.append(jsonObject2.getString("id")); //获取数据
builder.append(jsonObject2.getString("title"));
builder.append(jsonObject2.getString("name"));
}
myTextView.setText(builder.toString());
}
catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
//super.onPreExecute();
Toast.makeText(getApplicationContext(), "开始HTTP GET请求", Toast.LENGTH_LONG).show();
}
@Override
protected void onProgressUpdate(Object... values) {
// TODO Auto-generated method stub
super.onProgressUpdate(values);
}
}
}

android中json的浅薄理解
JSONObject 表示形式 {"key" : "value"}
JSONArray 表示形式 [{"key" : "value"},{"key" : "value"},{"key" : "value"}],JSONArray里面包含多个JSONObject
访问时通过 JSONObject对象去访问,使用 jsonObject.getXXX("key")得到相应的值
一般解析JSON都使用这两个。
android通过httpClient请求获取JSON数据并且解析的更多相关文章
- android客户端从服务器端获取json数据并解析的实现代码
今天总结一下android客户端从服务器端获取json数据的实现代码,需要的朋友可以参考下 首先客户端从服务器端获取json数据 1.利用HttpUrlConnection /** * 从指定的U ...
- (转)android客户端从服务器端获取json数据并解析的实现代码
今天总结一下android客户端从服务器端获取json数据的实现代码,需要的朋友可以参考下 首先客户端从服务器端获取json数据 1.利用HttpUrlConnection 复制代码 ...
- android客户端从服务器端获取json数据并解析的实现代码(重要)
首先客户端从服务器端获取json数据 1.利用HttpUrlConnection /** * 从指定的URL中获取数组 * @param urlPath * @return * @throws Exc ...
- PHP/Post 提交请求获取json数据,并转化为所需要的数组
/** * Post 提交请求获取json数据,并转化为所需要的数组 */ function request_post($url = '', $param = '') { if (empty($url ...
- HttpURLConnection从网上获取Json数据并解析详解
HttpURLConnection从网上获取Json数据并解析 1.HttpURLConnection请求数据的步骤 (1)构造一个URL接口地址: URL url = new URL("h ...
- JSONP 跨域请求 - 获取JSON数据
如何用原生方式使用JSONP? 下边这一DEMO实际上是JSONP的简单表现形式,在客户端声明回调函数之后,客户端通过script标签向服务器跨域请求数据,然后服务端返回相应的数据并动态执行回调函数. ...
- 异步请求获取JSON数据
json格式的数据广泛应用于异步请求中前后端的数据交互,本文主要介绍几种使用场景和使用方法. <script type="text/javascript"> funct ...
- 网络获取json数据并解析
1.升级流程分析
- Android Studio利用异步任务AsyncTask发送post请求获取json数据
syncTask,是Android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主 ...
随机推荐
- 学习Linux第一天
1.简介: 记住这个名字:Linus Torvals 系统组成:Linux内核,Shell, 文件系统,实时程序 Tips:在系统启动过程中,使用Alt+F2组合键,可以查看Ubuntu启动的详细过程 ...
- JS中删除字符串中的空格
问题描述: 在进行字符串操作时,由于字符串中存在较多的空格,因此需要考虑取消字符串中的空格 问题解决: (1)删除字符串中的前导空格(字符串的前面的空格): 注意:这里使用 ...
- 网站常用css必备css reset
在我们写前端代码页面的时候,很多常用的CSS类都是固定的!但没有一个标准或者大家都按自己的方式去随意的写,这样就每次都重复写一些固定的类! 为此HTML5 Doctor(HTML5医生)为我们总结了一 ...
- VS2010 创建WindowsService服务
1.新建一个Windows 服务 2.添加Installer 这一步很重要,在处理完你的业务逻辑后需要添加一个Installer才能是你的Windows服务被安装. 在VS中添加Installer 右 ...
- iOS 委托和协议区别和联系
iOS上的协议类似于C#.Java上面的接口,他是从类中抽出来的一系列方法,但方法的实现是在实现这个协议的类中,任何实现这个协议的类都需要实现协议类中的@require方法: 委托是一种设计模式,是一 ...
- 管理Java垃圾回收的五个建议
[编者按]本文作者是Niv Steingarten,是Takipi 的联合创始人,热衷于编写优雅简洁的代码.作者通过对垃圾收集器的介绍和梳理,在管理垃圾回收方面提出了五个建议,降低收集器开销,帮助大家 ...
- SGU 114
114. Telecasting station time limit per test: 0.25 sec. memory limit per test: 4096 KB Every city in ...
- DBSCAN算法
简单的说就是根据一个根据对象的密度不断扩展的过程的算法.一个对象O的密度可以用靠近O的对象数来判断.学习DBSCAN算法,需要弄清楚几个概念: 一:基本概念 1.:对象O的是与O为中心,为半径的空间, ...
- P1005 采药
P1005 采药 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 NOIP2005复赛普及组第三题 描述 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的 ...
- lintcode :Invert Binary Tree 翻转二叉树
题目: 翻转二叉树 翻转一棵二叉树 样例 1 1 / \ / \ 2 3 => 3 2 / \ 4 4 挑战 递归固然可行,能否写个非递归的? 解题: 递归比较简单,非递归待补充 Java程序: ...