php - 如何反序列化由 GSON 序列化的 PHP 中的数据
问题描述
我正在开发带有 api 的 android 应用程序PHP
。我正在尝试将对象发送到 api,因此我正在使用Gson
库对其进行序列化,并尝试使用函数在PHP
代码中反序列化。Unserialize()
但是,它给出错误(!)Notice: unserialize(): Error at offset 0 of 468 bytes in C:\wamp64\www\digiclass\admin\api\upload_pending_results.php on line 5
并最终给出 json 响应,{"error":false,"data":false}
这是我的PHP
代码:
<?php
//an array to display response
$response = array();
$serObject = $_POST['serObject'];
$response['error'] = false;
$response['data'] = unserialize($serObject);
echo json_encode($response);
?>
目前,我没有对数据执行任何操作,只想查看数据是否正确反序列化。我试图查看序列化的对象,它转换如下。
%7B%22accessToken%22%3A%22b2c1f3d5e8218cfa81d23c4b9b7d6cbc20f82c67ca4b9d92be9bb7680031360a9d95bf1e3ecf42678f1c8b87a4eb5622%22%2C%22clas%22%3A%229%22%2C%22dbname%22%3A%22a_new%22%2C%22records%22%3A%5B%7B%22clas%22%3A%229%22%2C%22id%22%3A1%2C%22marks%22%3A%222%2F8%22%2C%22rollno%22%3A%2212%22%2C%22subject%22%3A%22Maths%22%2C%22temp%22%3A1%7D%2C%7B%22clas%22%3A%229%22%2C%22id%22%3A1%2C%22marks%22%3A%227%2F8%22%2C%22rollno%22%3A%2212%22%2C%22subject%22%3A%22Maths%22%2C%22temp%22%3A2%7D%2C%7B%22clas%22%3A%229%22%2C%22id%22%3A1%2C%22marks%22%3A%223%2F8%22%2C%22rollno%22%3A%2212%22%2C%22subject%22%3A%22Maths%22%2C%22temp%22%3A3%7D%2C%7B%22clas%22%3A%229%22%2C%22id%22%3A1%2C%22marks%22%3A%228%2F8%22%2C%22rollno%22%3A%2212%22%2C%22subject%22%3A%22Maths%22%2C%22temp%22%3A4%7D%5D%2C%22rollno%22%3A%2212%22%7D
我不确定转换是否正确或错误可能是什么。任何人都可以帮忙吗?
解决方案
你得到的值是一个 URL 编码 JSON 字符串,所以首先解码它......
$serObject = urldecode($serObject);
然后将其解码为 JSON...
$response['data'] = json_decode($serObject, true);
推荐阅读
- python - 尝试使用 kivy 在 virtualbox ubuntu 中运行我的 python 程序时出现语法错误
- c++ - 专门针对指针值类型使用通用迭代器的 C++ 模板函数?
- ruby-on-rails - Rails 应用显示按钮/链接取决于用户["rank"]
- python - plotly-dash:缩小后如何获得预定义的 yaxis 范围?
- javascript - 使用简化的 ES2015 解构语法更新两个 javascript 对象
- python - django ajax django.utils.datastructures.MultiValueDictKeyError
- matlab - (Matlab) SVM 优化器因大矩阵而失败
- aframe - 为什么在 1.0.3 版本的 Google Chrome 中,光标在 Android 上的 VR 模式下不起作用?
- java - Vaadin 14 Grid + Dialog:关闭对话框后如何刷新网格?
- c# - Unity 奖励视频广告注册多次。统一广告