我已經在java中生成了一個包含JSON對象的HTMLPost請求,並且想要用PHP解析它。PHP中的JSON POST請求解析
public static String transferJSON(JSONObject j) {
HttpClient httpclient= new DefaultHttpClient();
HttpResponse response;
HttpPost httppost= new HttpPost(SERVERURL);
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("json", j.toString()));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
response = httpclient.execute(httppost);
}
而且服務器
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// input = "json=%7B%22locations%22%3A%5B%7B%22..."
$input = file_get_contents('php://input');
// jsonObj is empty, not working
$jsonObj = json_decode($input, true);
我想這是因爲JSON特殊字符進行編碼的。
json_decode返回空響應
任何想法爲什麼?
感謝甚至比改變輸入更好的解決方案。您的構造函數與3個字符串不存在。我使用了'StringEntity stringEntity = new StringEntity(j.toString(),「UTF-8」); stringEntity.setContentType(「application/json」);' –
肯定會與您使用的HTTP客戶端/ HTTP組件的版本有所不同。我只是從[最新的javadoc](http://hc.apache.org/httpcomponents-core-ga/httpcore/apidocs/org/apache/http/entity/StringEntity.html) – Charlie
拉的構造函數好的應該是。我在Android上使用Java版本。 –