android通过httpClient请求获取JSON数据并且解析
来源:互联网 发布:游戏破解软件下载 编辑:程序博客网 时间:2024/06/05 10:51
使用.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都使用这两个。
1 0
- android通过httpClient请求获取JSON数据并且解析
- android通过httpClient请求获取JSON数据并且解析
- Android HttpClient获取JSON数据并解析
- 通过HttpClient获取服务器接口json数据已及解析
- 通过HttpClient获取服务器接口json数据已及解析
- 通过httpClient发送json格式数据请求
- android HttpClient获取json数据
- HttpClient获取并解析JSON数据
- HttpClient获取并解析JSON数据
- HttpClient获取并解析JSON数据
- HttpClient获取并解析JSON数据
- HttpClient请求json数据
- HttpClient请求数据(GET)并用JSON解析数据(一)
- Android之网络----使用HttpClient发送HTTP请求(通过get方法获取数据)
- Android中数据文件解析(Json解析【从服务器端获取数据并且解析,显示在客户端上面】)
- Android中数据文件解析(Json解析【从服务器端获取数据并且解析,显示在客户端上面】)
- Android中数据文件解析(Json解析【从服务器端获取数据并且解析,显示在客户端上面】)
- Android中数据文件解析(Json解析【从服务器端获取数据并且解析,显示在客户端上面】)
- 实现string类的操作符重载 + = > < == != >> <<
- 判断线段相交思想
- XSS跨站测试代码大
- 【日常学习】【语法】STL之sort
- web.xml配置详解
- android通过httpClient请求获取JSON数据并且解析
- 实现修改HEX文件和S19文件的值
- 码农生涯杂记_1
- C++中 作用域及可见性
- 多尺度与多分辨率的理解
- Python是如何进行内存管理的?
- Android Fragment应用实战,使用碎片向ActivityGroup说再见
- 设计模式之命令模式(c++)
- setsockopt()函数使用详解