提示:在访问网络,或者服务器的数据一定要注意 网络权限的声明:
<uses-permission android:name="android.permission.INTERNET"/>
package com.sun.parsejsondata;
import java.io.IOException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.test.AndroidTestCase;
import android.util.Log;
/*{
"index_num":"121286",
"total":300,
"result_num":10,
"web_url":"http://www.aibang.com",
"wap_url":"http://wap.aibang.com",
"bizs":{
"biz":[{
"id":"19180584-418982077",
"name":"北京饭店",
"addr":"东城区东长安街号(近王府井大街)",
"tel":"4006778919-1011",
"cate":"宾馆酒店;美食;其他美食;五星级酒店;婚宴酒店;结婚",
"rate":4,
"cost":0,
"desc":"北京饭店始建于年,位于北京市中心,步行五,毗邻皇宫紫禁城,与繁华的...",
"dist":"-1",
"lng":"116.411096",
"lat":"39.9084880",
"img_url":"http://img0.aibangjuxin.com/ipic/15f6cfa4e1cc98cf_8.jpg"
},
...
]
}
}*/
/**
* 获取网络数据 -- json 格式,并进行解析
* @author Administrator
*
*/
public class ParseJson {
/**
* 解析JSON 数据
* @throws Exception
*/
public void parseJson(String jsonStr) throws Exception{
JSONObject root = new JSONObject(jsonStr);
// 编号
String index_num = (String) root.get("index_num");
int total = root.getInt("total");
int result_num = root.getInt("result_num");
JSONObject bizsO = root.getJSONObject("bizs");
JSONArray arr = bizsO.getJSONArray("biz");
for (int i = 0; i < arr.length(); i++) {
JSONObject bizs_ =arr.getJSONObject(i);
String id = bizs_.getString("id");
String addr = bizs_.getString("addr");
Log.i("msg","编号:"+id+"',地址"+addr);
}
}
/**
* 访问网络数据
* @throws IOException
* @throws ClientProtocolException
*/
public String accessIntent() throws Exception{
// 请求服务器地址
String path = "http://169.254.111.39:8080/myjson.html";
// Get 方式进行请求
HttpGet httpGet = new HttpGet(path);
// 默认客户端
HttpClient httpClient = new DefaultHttpClient();
// 请求响应
HttpResponse httpResponse = httpClient.execute(httpGet);
// 判断响应结果
if(httpResponse.getStatusLine().getStatusCode() == 200){ // 响应成功
HttpEntity httpEntity = httpResponse.getEntity();
String result = EntityUtils.toString(httpEntity, "gbk");
Log.i("msg",result);
return result;
}
return null;
}
}
post的请求方式:
public class HttpURLActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
System.out.println("start url...");
String url = "http://192.168.2.112:8080/JustsyApp/Applet";
// 第一步,创建HttpPost对象
HttpPost httpPost = new HttpPost(url);
// 设置HTTP POST请求参数必须用NameValuePair对象
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("action", "downloadAndroidApp"));
params.add(new BasicNameValuePair("packageId", "89dcb664-50a7-4bf2-aeed-49c08af6a58a"));
params.add(new BasicNameValuePair("uuid", "test_ok1"));
HttpResponse httpResponse = null;
try {
// 设置httpPost请求参数
httpPost.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
httpResponse = new DefaultHttpClient().execute(httpPost);
//System.out.println(httpResponse.getStatusLine().getStatusCode());
if (httpResponse.getStatusLine().getStatusCode() == 200) {
// 第三步,使用getEntity方法活得返回结果
String result = EntityUtils.toString(httpResponse.getEntity());
System.out.println("result:" + result);
T.displayToast(HttpURLActivity.this, "result:" + result);
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("end url...");
setContentView(R.layout.main);
}
}
分享到:
相关推荐
总结,Android中解析JSON数据涉及的关键知识点包括JSON的基本结构、Gson库的使用、JSONObject和JSONArray的操作、Volley库的网络请求以及Retrofit框架的使用。这些工具和技术使得Android开发者能够高效地处理服务器...
首先客户端从服务器端获取json数据 1、利用HttpUrlConnection 代码如下:/** * 从指定的URL中获取数组 * @param urlPath * @return * @throws Exception */ public static String readParse(String urlPath) ...
同时,确保在AndroidManifest.xml中添加必要的权限,比如网络访问权限(如果数据是从服务器获取的,而不是本地`raw`资源)。 总之,这个项目的核心是动态解析JSON数据,避免为每个JSON键值创建实体类,而是直接解析...
这个"Android服务器解析json数据实现下拉刷新上拉加载ListView显示"的示例项目,就是针对这一场景提供了一个完整的解决方案。以下是关于这个项目的关键知识点的详细说明: 1. JSON数据解析: JSON(JavaScript ...
在Android开发中,HTTPClient是常用的网络通信库之一,用于与服务器进行交互,获取或发送数据。本示例主要讲解如何使用HTTPClient访问服务器并获取JSON格式的数据。JSON(JavaScript Object Notation)是一种轻量级...
- **接收数据**:服务器响应的数据通常是JSON格式,Android客户端需要解析这些数据。使用`org.json`库,可以将JSON字符串转换为JSONObject或JSONArray,并提取所需信息。 2. **文件上传**: - 文件上传涉及到二...
总的来说,"android异步远程解析json数据绑定到ListView上"这一过程涵盖了许多Android开发的核心技术,包括异步编程、网络请求、JSON解析、数据绑定和异常处理。理解并熟练掌握这些知识点对于提升Android应用的性能...
要通过网络访问服务器,Android提供了`HttpURLConnection`和`HttpClient`等API,但更推荐使用`OkHttp`这样的第三方库,它更高效且易用。`OkHttp`支持异步请求,非常适合用于多线程访问服务器。在多线程环境下,我们...
通过上述步骤,你就可以在Android客户端从服务器端获取并解析JSON数据了。这不仅适用于基本的JSON数据结构,对于更复杂的数据结构,也可以通过递归地使用`JSONArray`和`JSONObject`来进行解析。
本篇将深入探讨如何在Android平台上使用org.json库解析JSON数据。 一、JSON基础知识 1. JSON数据结构:主要包括对象(Object)和数组(Array)。对象由键值对组成,用花括号{}包围;数组是一组有序的值,用方括号[]...
总之,在Android中解析JSON数据是应用程序与服务器交互的重要一环。熟练掌握Gson库和org.json库的使用,能够帮助开发者更高效地处理网络数据,提升应用性能。通过不断实践,你可以更加灵活地运用这些工具,解决各种...
3. **解析JSON**:Android SDK提供了`org.json`包,包含`JSONObject`和`JSONArray`类,用于解析JSON数据。对于JSON Object,可以通过`get()`方法获取键对应的值,对于JSON Array,可以遍历数组并逐一解析。 ```...
综上所述,Android客户端与服务器通信并使用JSON进行数据交互是一个涉及网络编程、JSON处理、服务器框架理解等多个层面的复杂过程。在实际开发中,需要对每个环节都有深入的理解,才能有效地实现客户端与服务器的...
这个资料包包含了一个关于Android解析JSON数据的PPT和源码,可以帮助开发者深入理解和实践Android中如何处理JSON数据。 首先,我们要理解JSON的基本结构。JSON由键值对组成,键用引号括起来,后跟冒号,值可以是...
本主题聚焦于“Android Studio解析JSON对象”,这是一个非常关键且实用的技能,因为JSON作为一种轻量级的数据交换格式,广泛应用于网络通信和数据存储。JSON对象可以方便地表示各种复杂的数据结构,包括数组、键值...
在Android中,我们通常使用`org.json`库或`com.google.gson`库来解析JSON数据。 1. `org.json`库:这是Android SDK自带的一个轻量级库,主要用于解析简单的JSON数据。 - JSONObject:表示一个JSON对象,可以通过`...
本篇将深入探讨如何在Android中解析JSON数据。 首先,我们需要了解JSON的基本结构。JSON数据可以表示为对象或数组,对象由键值对组成,用花括号{}包围,键和值之间用冒号隔开,多个键值对用逗号分隔;数组是一系列...
本篇文章将详细介绍如何在Android应用中使用Gson库解析JSON数据,以便更好地理解这一关键知识点。 首先,我们要了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于...