web-dev-qa-db-ja.com

androidを介してjson Webサービスを呼び出す方法

JSONを使用してRest形式で.Net Webサービスにアクセスする必要があります。私はこのコンセプトにかなり慣れていないので、これがどのように機能するかについて非常に混乱しています...この概要を説明できる人なら誰でも。 JSONを使用するために必要な手順が必要です。現時点では、JSONを使用して出力を取得する方法が疑問です。

15
Neetesh

これは、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){
    }

Androidマニフェストでインターネット許可に言及する

4
Tofeeq Ahmad

Gson ライブラリは、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
2
gayavat

次のようにjsonデータを使用します。

var a=new JSONObject(jsonData);

http://developer.Android.com/resources/tutorials/views/hello-mapview.html

Aからのデータを使用して必要なオブジェクトを構築し、同じことで必要なことを行う

0
Baz1nga

以下は、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();
    }
}

詳細については http://www.codeproject.com/Articles/267023/Send-and-receive-json-between-Android-and-php を参照してください

0
Hazem Fergany