-2

私のアプリケーションでは、J SON 形式としてサーバーから応答を取得しています。解析時に、応答に未終了のエラーが表示されるため、解析できません。

私のjsonコーディング

 HttpClient client = new DefaultHttpClient();
        HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000);
        HttpConnectionParams.setSoTimeout(client.getParams(), 10000);

        HttpResponse response;

        try {

            HttpPost post = new HttpPost(getString(R.string.base_url)+ "login?json=");

            Time dtNow = new Time();
            dtNow.setToNow();
            String last_login_ts = dtNow.format("%Y-%m-%d %H:%M:%S");

            // Log.v("Login_ts",""+last_login_ts);

            json.put("pmailtxt", "" + et_username.getText().toString());
            json.put("loginpasstxt", "" + et_password.getText().toString());
            json.put("merchant_code", "" + getString(R.string.merchant_code));
            json.put("last_login_ts", "" + last_login_ts);

            // Log.v("Login", ""+json);

            // Toast.makeText(getApplicationContext(), ""+json, 700).show();

            post.setHeader("json", json.toString());
            StringEntity se = new StringEntity(json.toString());

            se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,"application/json"));
            post.setEntity(se);
            response = client.execute(post);

            // Checking response
            if (response != null) {

                // get a data
                InputStream in = response.getEntity().getContent();
                String a = json_res_class.convertStreamToString(in);
                Log.v("Response", ""+a);//here am getting response

ここで私の応答エラー

06-07 16:05:55.132: W/System.err(930): org.json.JSONException: Unterminated array at  character 5 of [  {"loginSuccess":0,"message":"Wrong username or password"}]

この問題を解決するにはどうすればよいですか、この問題を解決するのを手伝ってください。

4

2 に答える 2

1

以下のコードを見てください

try {
            HttpResponse response = httpclient.execute(httppost);

            int responsecode = response.getStatusLine().getStatusCode();
            if (responsecode == 200) {

                InputStream in = response.getEntity().getContent();
                resultstring = Util.convertinputStreamToString(in);
            } 

        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

convertinputStreamToString 関数を一度確認してください。

public static String convertinputStreamToString(InputStream ists)
        throws IOException {
    if (ists != null) {
        StringBuilder sb = new StringBuilder();
        String line;

        try {
            BufferedReader r1 = new BufferedReader(new InputStreamReader(
                    ists, "UTF-8"));
            while ((line = r1.readLine()) != null) {
                sb.append(line).append("\n");
            }
        } finally {
            ists.close();
        }
        return sb.toString();
    } else {
        return "";
    }
}
于 2013-06-07T11:07:38.653 に答える