在PHP中使用JSON时,在字符串之前添加字符串长度

时间:2019-07-02 09:36:38

标签: javascript php json ajax

当我使用Ajax调用PHP文件并通过javascript字典传递POST变量时,该POST变量的值将解析为PHP字典。但是,字符串值的长度在字符串之前。数组也是如此。为什么会这样,我该如何规避? (比较字符串时,PHP认为字符串(x)是字符串的一部分)

编辑:字符串比较仍然有效,但是我仍然想知道为什么要添加它。 EDIT2:我找到了答案,这实际上是var_dump的一部分。.

JavaScript ajax调用:

var res = $.ajax({
  type: "POST",
    data: {
      name:"STRING NAME",
      validators:{KEY: "VALUE", KEY2: "VALUE2"}
    },
  url: url,
  dataType: "json",
  async: false,
  success: function(data) {
    result=data;
  }
});

使用PHP在接收端进行转储

array(2) {
  ["KEY"]=>
  string(5) "VALUE"
  ["KEY2"]=>
  string(6) "VALUE2"
}

2 个答案:

答案 0 :(得分:1)

在您的示例中:

array(2) {
    ["KEY"]=>
    string(5) "VALUE"
    ["KEY2"]=>
    string(6) "VALUE2"
}

您看到'string(5)“ VALUE”',因为您正在通过var_dump()函数进行打印。

您应该使用print_r()函数隐藏数据类型。

答案 1 :(得分:0)

事实证明,这种现象是var_dump的一部分。没什么可担心的。