1

私はAndroidからJSONを渡すことをやっている単純な男ですが、奇妙な問題に遭遇しました。

PHPとAndroidの間でJSONがどのように機能するかをよりよく理解するために、まずJson(OK)を作成してPHPに渡し、まったく同じファイルをエコーバックしました。

問題は、送信されるJSON.toString()が次のとおりであるということです。{"Age at Death":32.5、 "Enemy": "Darius"、 "Battles":["Issus"、 "Arbela"]、 "Death": -323}

ただし、返されるJSON.toString()は次のとおりです。 "]、\" Death \ ":-323}

PHPからJsonを読み込もうとすると、エラーがスローされます。(追記:これは私が特定した問題の1つです。ソースが他の場所にある可能性があるため、間違った方向に進めないでください)

これが私のコードです:

アンドロイド:

private void connectToURL() throws UnsupportedEncodingException {
        // TODO Auto-generated method stub
        HttpParams httpParams = new BasicHttpParams();
        HttpClient client = new DefaultHttpClient(httpParams);
        String url = "http://www.this.url.is.correct.php";

        List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>(2);
        String hello = myJson.toString();
        nameValuePair.add(new BasicNameValuePair("Json", myJson.toString()));

        HttpPost request = new HttpPost(url);
        request.setEntity(new UrlEncodedFormEntity(nameValuePair));

        //ResponseHandler<String> responseHandler = new BasicResponseHandler();
        try {
            HttpResponse response = client.execute(request);
            HttpEntity entity = response.getEntity();
            String myResponse = EntityUtils.toString(entity);
            showResponse(myResponse);
        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

    private void showResponse(String thisResponse) {
        try {
            JSONObject newJson = new JSONObject(thisResponse);

            viewer02.setText(newJson.toString(2));
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

これがPHPです(これよりも単純になることはありません):

<?php

$obj = $_POST['Json'];
//$json = json_encode($obj);
//$string = $json->{'enemy'};

echo $obj;

?>
4

1 に答える 1

2

これは、php でマジック クォート オプションがオンになっているために発生します。

IIRC は現在非推奨であり、実際に使用することはお勧めしません (意味がないため)

于 2012-08-30T06:27:57.250 に答える