当前位置: 首页 > 知识库问答 >
问题:

解码AJAX编码的JSON对象

笪涛
2023-03-14

这可能很容易,但我真的可以在这里使用Ajax和JSON方面更聪明的人来帮助我。我有一个Javascript函数将Ajax请求传递给PHP后端。我将传递一个javascript对象作为“request\u parameters”post变量。当它出现在PHP上时,我可以导航它,但是对象结构已经被数组所取代。相反,我希望对象结构保持完整,因此作为足够聪明的危险类型,我决定对对象进行JSON编码:

 request_parameters: JSON.encode( requestObj );

相对于只是

 request_parameters: requestObj;

在PHP端,我现在将其作为“request\u parameters”变量(aka,$\u POST['request\u parameters'])的值:

“形式形式”方面的主要形式是,形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式。形式形式方面的形式方面的形式形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式方面的形式的形式的形式方面的形式方面的形式的形式方面的形式方面的形式的形式的形式的形式方面的形式方面的形式方面的形式的形式方面的形式方面的形式的形式的形式的形式形式形式形式形式形式形式形式形式形式形式形式“id\”:\“最小持续时间\”、“名称\”:“最小持续时间\”、“类别\”:“span1表单忽略”、“值\”:“50\”、“类型\”:“文本\”、“起始值\”:null}、{“id\”:“活动持续时间\”、“名称\”:“活动持续时间\”、“值\”:“3000000\”、“类型\”:“隐藏的\”、“起始值\”:null}、{“id\:“练习距离\”、“练习类别\”“输入值”为:零。目前,该地区的输入量为:1左1左1“,,“价值”值为:1左1左1左1左1“,“输入值”为:1左1左1左1左1左1左1“,,“值”值为:1左1左1左1左1左1左1左1左1“,,“值”值为:25“25\“,,,,,,,“25\“25\,,,,,,,,,,,,,“值”值为”值为:“:::::::::::::“英里英里”英里”英里”英里”英里数为“英里,英里数为,“英里数”英里数”,以及,“英里数”,以及,”若若若若若若,”,”,”,”,”,”,”,”,”在。“类型类型类型:“,,,,,,,,,,,,“类型:,,,“类型”若若若若若若若若若若若若若若若:\”wp\u posts-post\u content\”,“name\”:“wp\u posts-post\u content\”,“class\”:“span5\”,“value\”:“super fast\”,“type\”:“textarea\”,“startingValue\”:null}],“action\”:“God running\,“post\u type\”:“exercise\”,“primaryForm\”:0}

好的,所以这显然被编码了,这样数据就可以作为POST/GET变量传递,而不会发生不好的事情。够公平了。我想我可以通过在运行json_decode函数之前使用解码来解决这个问题。我第一次尝试:

$request_parameters = json_decode( urldecode($request_parameters) );

我确信这会是一个赢家。不。它没有给出错误,但$request\u参数似乎没有设置为任何值。好吧,然后我有点发疯了,想。。。“嘿,也许javascript使用了base64编码”。。。这使我想到:

$request_parameters = json_decode( base64_decode($request_parameters) );

糟糕的juju。我把它放在那儿。

任何帮助都将不胜感激。

共有2个答案

东郭鸿福
2023-03-14

json_解码($_POST['request_parameters']) 应该是您所需要的全部。

吕修伟
2023-03-14

尝试json_解码(stripslashes($_POST['request_parameters'])

您可能已经启用了magic_quotes

[已编辑]

如果您启用了魔法报价,请检查下面评论中提供的链接并禁用它。如果您盲目地使用stripslash,然后更改服务器设置或移动到不同的服务器,则上述代码将中断。

然而,如果禁用魔法引号在您的情况下不是一个可能的选项,那么使用下面的代码从这个特定的post参数中删除斜杠。

if (get_magic_quotes_gpc()) {
  $request_parameters = stripslashes($_POST['request_parameters']);
}
$request_parameters = json_decode($request_parameters);

 类似资料:
  • 在上一章,已经讲过在 codec 中使用 JSON 编码。但是,有些日志可能是一种复合的数据结构,其中只是一部分记录是 JSON 格式的。这时候,我们依然需要在 filter 阶段,单独启用 JSON 解码插件。 配置示例 filter { json { source => "message" target => "jsoncontent" } }

  • 问题内容: 我有一个用于ERP系统的快速开发工具,该工具仅允许使用vbscript。我正在尝试使用VBS创建一个简单的AJAX请求。可以使用“ Microsoft.XMLHTTP”对象。 下一步是使用json从网络服务器接收数据。但是在VBS中似乎没有像“ json_decode”或其他功能。 有人知道解决方案吗?还是开发自己的json函数的唯一选择? 问题答案: 由于JSON是一种分层数据格式,

  • 问题内容: 大家好,我是从外部Api获取websocket信息的,它以这种方式给了我json响应: 我把它放在这个结构中 并用代码解码 我遇到错误 我知道该错误是文本字段值的结果。有什么好的方法可以清理它或告诉解码器忽略文本字段的内容吗? 问题答案: 该应用程序正在解析包含substring的数据。这是无效的JSON。错误消息抱怨in 。 由于JSON值包含编码的JSON值,因此应用程序必须分两个

  • 问题内容: 有谁知道一个可以轻松地将Java Maps编码为JSON对象的Java库? 更新 由于无法解释的原因(有时我讨厌),我无法在环境中使用泛型。 我正在尝试做的事情是这样的: 并能够再次将其作为地图列表 问题答案: JSON-Simple看起来相对易于使用(下面的示例)。 映射到JSON: JSON到列表/地图:

  • 本文向大家介绍Go JSON编码与解码的实现,包括了Go JSON编码与解码的实现的使用技巧和注意事项,需要的朋友参考一下 在开发应用程序时,客户端(前端页面或APP)与服务端交互是在所难免的,在交互过程传递数据时,最通用和流行格式便是JSON,Go语言提供了encoding/json包,用于处理JSON数据的编码与解码。 除了JSON,XML也常用于前后端的数据交互,不过由于简洁性、可读性和流行

  • 问题内容: 希望我不必在这里重新发明轮子,但是有人知道C#中是否有一个类似于Adobe为AS3提供的类,用于将通用对象转换为JSON字符串的类? 例如,当我编码一个对象数组时。 输出: 问题答案: 在C#中: