3

私はPHPの世界の初心者であり、PHPでJSONを解析するのに問題があります。Apache HttpClient 4.xとを使用してJavaクライアントでPHPスクリプトにデータをPOSTしたいGson

私のJSON:

[{"Knt_KntWatchId":"15","type":"INSERT","Knt_Nazwa1":"a"},{...},...]

HttpClientとを使用してJavaで送信していますGson

    List<Contact> contacts = ...;
    HttpPost post = new HttpPost(CONTACTS_SERVICE);
    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
    nameValuePairs.add(new BasicNameValuePair("key", AppConstants.KEY));
    nameValuePairs.add(new BasicNameValuePair("data", new Gson().toJson(contacts)));
    post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
    post.setHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");

ページ上:

if (isset($_POST['data'])) {
    $data = $_POST['data'];
    $json = json_decode($data, true);
    var_dump($json);
    var_dump($data);

私が得ているのは:

NULL string(3651) "[{\"Knt_KntWatchId\":\"15\",\"type\":\"INSERT\",\"Knt_Nazwa1\":\"a\"},...

どうすれば動作させることができますか?

PHP5.2-使用できませんjson_last_error()

4

1 に答える 1

10

stripslashes()で試してください

$string = stripslashes('[{\"Knt_KntWatchId\":\"15\",\"type\":\"INSERT\",\"Knt_Nazwa1\":\"a\"}]');
print_r(json_decode($string));

だからilは

$json = json_decode(stripslashes($data), true);
于 2012-08-31T07:08:53.807 に答える