Parse在PHP中转义了JSON
我是PHP世界的新手,我在PHP中解析JSON时遇到了问题。 我想使用Apache HttpClient 4.x
和Gson
使用我的Java客户端将数据发布到PHP脚本。
我的JSON:
[{"Knt_KntWatchId":"15","type":"INSERT","Knt_Nazwa1":"a"},{...},...]
我使用HttpClient
和Gson
用Java发送它:
List contacts = ...; HttpPost post = new HttpPost(CONTACTS_SERVICE); List nameValuePairs = new ArrayList(); 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\"},...
我怎样才能让它运作起来?
PHP 5.2 – 不能使用json_last_error()
尝试使用stripslashes()
$string = stripslashes('[{\"Knt_KntWatchId\":\"15\",\"type\":\"INSERT\",\"Knt_Nazwa1\":\"a\"}]'); print_r(json_decode($string));
所以我会
$json = json_decode(stripslashes($data), true);
- 如何用RequestConfig替换不推荐使用的httpClient.getParams()?
- javax.net.ssl.SSLPeerUnverifiedException:peer未经过身份validation的问题
- 从Commons HttpClient迁移到HttpComponents Client
- 什么是apache中的SchemeRegistry以及何时应该使用它?
- 强制重试特定的http状态代码
- HttpClient 4.3.x,修复已弃用的代码以使用当前的HttpClient实现
- 如何在java中设置SSL协议版本? 我怎么知道哪一个? javax.net.ssl.SSLException:收到致命警报:protocol_version
- Apache http客户端默认设置不适用于sni
- 如何使用RestTemplate为每个请求设置RequestConfiguration?