首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从$_POST中的json读取关联数组

从$_POST中的json读取关联数组
EN

Stack Overflow用户
提问于 2011-04-27 23:54:34
回答 5查看 68.2K关注 0票数 19

我正在使用jQuery将json对象发布到我的php应用程序中。

代码语言:javascript
复制
jQuery.post("save.php",JSON.stringify(dataToSend), function(data){ alert(data); });

从firebug中提取的json字符串如下所示

代码语言:javascript
复制
{ "data" : [ { "contents" : "This is some content",
        "selector" : "DIV.subhead"
      },
      { "contents" : "some other content",
        "selector" : "LI:nth-child(1) A"
      }
    ],
  "page" : "about_us.php"
}

在php中,我试图将其转换为一个关联数组。

到目前为止我的php代码是

代码语言:javascript
复制
<?php
$value = json_decode(stripcslashes($_POST));
echo $value['page'];
?>

对ajax调用的响应应该是"about_us.php“,但返回为空。

EN

回答 5

Stack Overflow用户

发布于 2011-04-27 23:56:45

如果请求正文不是标准的form编码形式,则不会填充$_POST

取而代之的是,像这样从read-only php://input stream中读取以获得原始请求正文:

代码语言:javascript
复制
$value = json_decode(file_get_contents('php://input'));
票数 89
EN

Stack Overflow用户

发布于 2011-04-27 23:59:19

如果需要关联数组,则将第二个参数作为true传递,否则将继续返回object。

代码语言:javascript
复制
$value = json_decode(stripslashes($_POST),true);
票数 4
EN

Stack Overflow用户

发布于 2011-04-27 23:58:31

尝试:

代码语言:javascript
复制
echo $value->page;

因为json_decode的默认行为是返回stdClass类型的对象。

或者,将第二个可选的$assoc参数设置为true

代码语言:javascript
复制
$value = json_decode(stripslashes($_POST), true);
echo $value['page'];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5806971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档