0

サーバーからの http 応答を適切な解析可能な JSON 配列に変換する方法を知りたかった

        try {
            HttpClient httpClient = new DefaultHttpClient();
            HttpPost postRequest = new HttpPost(
                    "http://riffre.com/chatapp/search.php?format=json");
            postRequest.setEntity(new UrlEncodedFormEntity(nameValuePair));
            ResponseHandler<String> responseHandler = new BasicResponseHandler();
            responsesrch = httpClient.execute(postRequest, responseHandler);

            Log.v("search response", responsesrch);

これは私のコードで、名前と値のペアの形式でいくつかのパラメーターをサーバーに投稿し、responseserch取得した値は次のとおりです

{"users":[{"user":{"city":"gurgaon","username":"zxc","userid":"6","gender":"Male","images":"0"}},{"user":{"city":"gurgaon","username":"tarun","userid":"5","gender":"Male","images":"0"}},{"user":{"city":"gurgaon","username":"vips","userid":"4","gender":"Male","images":"0"}},{"user":{"city":"gurgaon","username":"rah","userid":"3","gender":"Male","images":"0"}},{"user":{"city":"gurgaon","username":"aak","userid":"2","gender":"Male","images":"0"}}]}

これは文字列形式なので、この文字列を json 配列に変換する方法を知りたかったのですが、入力ストリームとこれらすべてのエンティティをどのように使用する必要があるかまだわかりません。

4

5 に答える 5

1

これは私の作業コードのサンプルです:

   jArray = new JSONArray(result);
   JSONObject json_data = null;
   double[] tempLong = null;
   double[] tempLat = null;
   for (int i = 0; i < jArray.length(); i++) {
       json_data = jArray.getJSONObject(i);
       tempLong = new double[jArray.length()];
       tempLat = new double[jArray.length()];
       tempLong[i] = json_data.getDouble("longtitude");
       tempLat[i] = json_data.getDouble("latitude");
   }

ニーズに合わせて調整できると確信しています

于 2012-05-25T10:54:34.240 に答える
1

これを見てください、それは簡単です

http://www.androidhive.info/2012/01/android-json-parsing-tutorial/

IS を文字列に変換する

 try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(
                    is, "iso-8859-1"), 8);
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                sb.append(line + "n");
            }
            is.close();
            json = sb.toString();
        } catch (Exception e) {
            Log.e("Buffer Error", "Error converting result " + e.toString());
        }

文字列を Json オブジェクトに変換する

try {
            jObj = new JSONObject(json);
        } catch (JSONException e) {
            Log.e("JSON Parser", "Error parsing data " + e.toString());
        }

オブジェクトから配列を取得

 // Getting Array of Contacts
    JSONArray  contacts = json.getJSONArray("users");
于 2012-05-25T10:51:12.013 に答える
1

使用できます

  1. GSON
  2. ジャックソン

json.org のデフォルトの json を使用する場合は、インポート org.json.JSONArray;して次のようにします。

JSONArray jsonArray = new JSONArray(yourJsonString);

参照: http://www.vogella.com/articles/AndroidJSON/article.html

于 2012-05-25T10:53:35.383 に答える
1

Java オブジェクトを JSON との間で変換したい場合は、以下を参照してください: google-gson Java ライブラリ

于 2012-05-25T11:01:09.997 に答える
1

2行のコードで

JSONObject jObj = new JSONObject(responsesrch.toString());
JSONArray jArr=jObj.getJSONArray("users");
于 2012-05-25T11:04:53.907 に答える