额外的斜杠来自json数组


Extra slash comes in json array

可嵌套拖放。当我拖放瓷砖时,它会在textarea中生成一个数组,它是[{},{"id":267},{"id":266}]。现在,当我张贴这个数组在行动页面,然后它张贴[{},{'"id'":267},{'"id'":266}]。为什么这个额外的斜杠出现在数组中。在动作页,我转换这个数组使用json_decode。现在我如何从数组中删除这个斜杠或者我如何忽略这个数组我通过jsondecode成功解码了这个数组。

$(document).ready(function()
{
    var updateOutput = function(e)
    {
        var list   = e.length ? e : $(e.target),
            output = list.data('output');
        if (window.JSON) {
            output.val(window.JSON.stringify(list.nestable('serialize')));//, null, 2));
        } else {
            output.val('JSON browser support required for this demo.');
        }
    };
    // activate Nestable for list 1
    $('#rightservices').nestable({
        group: 1
    })
    .on('change', updateOutput);
    // output initial serialised data
    updateOutput($('#rightservices').data('output', $('#siteservices')));

    //$('#nestable3').nestable();
});

听起来好像Magic Quotes是在服务器上设置的。这是PHP的一个旧的、已弃用的特性,任何请求数据都会自动用斜杠转义,而不管它是什么。您可以按照这里列出的说明禁用它们。在那个页面上,这些都可以工作,这取决于您可以访问的内容:

在php . ini中

如果你有权限访问php.ini,这是最有效的选项。

; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = Off
在. htaccess

如果你没有权限访问php.ini:

php_flag magic_quotes_gpc Off
在运行时

这是低效的,只有当你不能使用上述设置时才使用。

<?php
if (get_magic_quotes_gpc()) {
    $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
    while (list($key, $val) = each($process)) {
        foreach ($val as $k => $v) {
            unset($process[$key][$k]);
            if (is_array($v)) {
                $process[$key][stripslashes($k)] = $v;
                $process[] = &$process[$key][stripslashes($k)];
            } else {
                $process[$key][stripslashes($k)] = stripslashes($v);
            }
        }
    }
    unset($process);
}
?>

下面将删除数组中的第一个对象,但并没有真正解决为什么要首先添加它的真正问题?

var arr = [{},{'"id'":267},{'"id'":266}];
arr.splice(0,1);