Java 如何通过android调用json Web服务
我需要使用JSON访问Rest格式的.NETWeb服务。我 这是一个非常新的概念,并且非常困惑 作品 任何一个能对此给出概述的人。我需要我所需要的步骤 使用JSON需要遵循以下步骤。现在我的疑问是如何使用JSON来Java 如何通过android调用json Web服务,java,android,web-services,json,Java,Android,Web Services,Json,我需要使用JSON访问Rest格式的.NETWeb服务。我 这是一个非常新的概念,并且非常困惑 作品 任何一个能对此给出概述的人。我需要我所需要的步骤 使用JSON需要遵循以下步骤。现在我的疑问是如何使用JSON来 抓取以输出。您使用json数据如下: var a=new JSONObject(jsonData); 使用来自的数据构造必要的对象,并使用相同的方法执行必要的操作这是解析Jsonweb服务的最简单方法 String str="url"; try{
抓取以输出。您使用json数据如下:
var a=new JSONObject(jsonData);
使用来自的数据构造必要的对象,并使用相同的方法执行必要的操作这是解析
Json
web服务的最简单方法
String str="url";
try{
URL url=new URL(str);
URLConnection urlc=url.openConnection();
BufferedReader bfr=new BufferedReader(new InputStreamReader(urlc.getInputStream()));
String line;
while((line=bfr.readLine())!=null)
{
JSONArray jsa=new JSONArray(line);
for(int i=0;i<jsa.length();i++)
{
JSONObject jo=(JSONObject)jsa.get(i);
title=jo.getString("deal_title"); //tag name "deal_title",will return value that we save in title string
des=jo.getString("deal_description");
}
}
catch(Exeption e){
}
String str=“url”;
试一试{
URL=新URL(str);
URLConnection urlc=url.openConnection();
BufferedReader bfr=新的BufferedReader(新的InputStreamReader(urlc.getInputStream());
弦线;
而((line=bfr.readLine())!=null)
{
JSONArray jsa=新JSONArray(线);
对于(int i=0;i,以下是Android活动从Web服务读取并解析JSON对象的代码:
public void clickbutton(View v) {
try {
// http://androidarabia.net/quran4android/phpserver/connecttoserver.php
// Log.i(getClass().getSimpleName(), "send task - start");
HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams,
TIMEOUT_MILLISEC);
HttpConnectionParams.setSoTimeout(httpParams, TIMEOUT_MILLISEC);
//
HttpParams p = new BasicHttpParams();
// p.setParameter("name", pvo.getName());
p.setParameter("user", "1");
// Instantiate an HttpClient
HttpClient httpclient = new DefaultHttpClient(p);
String url = "http://10.0.2.2:8080/sample1/" +
"webservice1.php?user=1&format=json";
HttpPost httppost = new HttpPost(url);
// Instantiate a GET HTTP method
try {
Log.i(getClass().getSimpleName(), "send task - start");
//
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(
2);
nameValuePairs.add(new BasicNameValuePair("user", "1"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String responseBody = httpclient.execute(httppost,
responseHandler);
// Parse
JSONObject json = new JSONObject(responseBody);
JSONArray jArray = json.getJSONArray("posts");
ArrayList<HashMap<String, String>> mylist =
new ArrayList<HashMap<String, String>>();
for (int i = 0; i < jArray.length(); i++) {
HashMap<String, String> map = new HashMap<String, String>();
JSONObject e = jArray.getJSONObject(i);
String s = e.getString("post");
JSONObject jObject = new JSONObject(s);
map.put("idusers", jObject.getString("idusers"));
map.put("UserName", jObject.getString("UserName"));
map.put("FullName", jObject.getString("FullName"));
mylist.add(map);
}
Toast.makeText(this, responseBody, Toast.LENGTH_LONG).show();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// Log.i(getClass().getSimpleName(), "send task - end");
} catch (Throwable t) {
Toast.makeText(this, "Request failed: " + t.toString(),
Toast.LENGTH_LONG).show();
}
}
公共作废点击按钮(视图v){
试一试{
// http://androidarabia.net/quran4android/phpserver/connecttoserver.php
//i(getClass().getSimpleName(),“发送任务-启动”);
HttpParams HttpParams=新的BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams,
超时(毫秒);
HttpConnectionParams.setSoTimeout(httpParams,超时0毫秒);
//
HttpParams p=新的BasicHttpParams();
//p.setParameter(“name”,pvo.getName());
p、 设置参数(“用户”、“1”);
//实例化一个HttpClient
HttpClient HttpClient=新的默认HttpClient(p);
字符串url=”http://10.0.2.2:8080/sample1/" +
“webservice1.php?user=1&format=json”;
HttpPost HttpPost=新的HttpPost(url);
//实例化一个GET-HTTP方法
试一试{
i(getClass().getSimpleName(),“发送任务-启动”);
//
List name valuepairs=new ArrayList(
2);
添加(新的BasicNameValuePair(“用户”,“1”));
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
ResponseHandler ResponseHandler=新BasicResponseHandler();
字符串responseBody=httpclient.execute(httppost,
负责人);
//解析
JSONObject json=新的JSONObject(ResponseBy);
JSONArray jArray=json.getJSONArray(“posts”);
ArrayList mylist=
新的ArrayList();
for(int i=0;i
有关更多详细信息,请参见库可以将json字符串自动解析为对象。
简单的例子:
Gson gson = new Gson();
int[] ints = {1, 2, 3, 4, 5};
String[] strings = {"abc", "def", "ghi"};
//(Serialization)
gson.toJson(ints); ==> prints [1,2,3,4,5]
gson.toJson(strings); ==> prints ["abc", "def", "ghi"]
//(Deserialization)
int[] ints2 = gson.fromJson("[1,2,3,4,5]", int[].class);
==> ints2 will be same as ints
它不能解决任何问题,当您遇到空字节时停止转换是主要错误之一。我认为这不是您的问题。但如果您知道它有一些错误..请随意编辑。否则作为答案给出。如果喜欢,那么我将是第一个+1您的答案。它对我有效,因此我在此处发布,然后保留它..我看不出任何问题。它在我的应用程序。这是最主要的。在一个空字节后丢弃数据显然对你来说不是问题。可能是对其他人来说。你能解释一下这对其他人来说会是什么问题吗。到目前为止,我在哪里丢弃空字节还不清楚。你能解释一下吗?检查这个帖子希望你有一些想法/帮助检查这个:可能请看一下本教程