【发布时间】:2019-11-22 08:35:31
【问题描述】:
我通过 ajax 将 JSON 对象传递给我的 php 文件。然后我使用函数json_encode,并将其保存到数据库中。
问题是,当 JSON 对象为空 {},那么在 PHP 中它不是空对象/数组,而是空字符串 ""。
我需要将其反序列化为编码(空 JSON 对象),而不是空字符串。
我做错了什么?
查询:
_key = $(this).data('column-name');
_temp = {};
$(this).find('> .rc-picker-content > .rc-picker-item').each(function (__index, $__element) {
_temp[__index] = {};
_temp[__index] = $(this).attr('data-value');
});
_attr[_key] = _temp; //the variable which is sent via ajax to php
PHP
if (isset($_POST['value']) && is_array($_POST['value'])){
$_POST['value'] = json_encode($_POST['value']); //this hould be enmpty array not empty string
}
【问题讨论】:
-
您是否尝试过将字符串转换回服务器端的对象?看起来你需要某种模型。
-
能看到代码吗?没有它,很难调试!
-
我添加了代码sn-ps
-
_temp[__index] = $(this).attr('data-value');这行可能使它成为一个空字符串(它会覆盖之前的空对象分配)。这就是说,您添加的代码并未显示发送到 php 后端的最终值。如果提供了适当的 json 字符串,php 肯定会给你一个空数组/对象。 3v4l.org/GFFDb
标签: php jquery json json-deserialization json-serialization