Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何通过android调用json Web服务_Java_Android_Web Services_Json - Fatal编程技术网

Java 如何通过android调用json Web服务

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访问Rest格式的.NETWeb服务。我 这是一个非常新的概念,并且非常困惑 作品 任何一个能对此给出概述的人。我需要我所需要的步骤 使用JSON需要遵循以下步骤。现在我的疑问是如何使用JSON来
抓取以输出。

您使用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您的答案。它对我有效,因此我在此处发布,然后保留它..我看不出任何问题。它在我的应用程序。这是最主要的。在一个空字节后丢弃数据显然对你来说不是问题。可能是对其他人来说。你能解释一下这对其他人来说会是什么问题吗。到目前为止,我在哪里丢弃空字节还不清楚。你能解释一下吗?检查这个帖子希望你有一些想法/帮助检查这个:可能请看一下本教程