php json存储问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php json存储问题相关的知识,希望对你有一定的参考价值。
通过控制器获取json数据,保存到数据库。后面多了个/,数据出错了
参考技术A 读取出来后可以json_decode吗 参考技术B 应该是你在转json格式后加了一个这个符号,看看代码部分是不是多了什么本回答被提问者和网友采纳不存储 POST 数据 (json)
【中文标题】不存储 POST 数据 (json)【英文标题】:Not storing POST data (json) 【发布时间】:2011-08-06 15:02:24 【问题描述】:我有这段 javascript:
var jsonString = "一些 json 字符串"; $.post('proxy.php', data : jsonString , function(response) var print = 响应; 警报(打印);还有一点 PHP(在 proxy.php 中):
$json = $_POST['json']; //设置 POST 变量,这是我要发布到的地方! $url = 'http://my.site.com/post'; //打开连接 $ch = curl_init(); //设置url,POST vars的数量,POST数据 curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch,CURLOPT_POST, 1); curl_setopt($ch,CURLOPT_POSTFIELDS, "data=" . urlencode($json)); //执行帖子(结果将类似于 "result":1,"error":"","pic":"43248234af832048","code":"234920348239048") $result = curl_exec($ch); $response = json_decode($result); $imageHref = 'http://my.site.com/render?picid=' 。 $response['picid']; //关闭连接 curl_close($ch); 回声 $imageHref;我正在尝试使用代理将数据发布到外部站点。从那里,我附加站点响应的 picid 并将其附加到 URL 以获取图像 URL。
我在这里遗漏了什么吗?我没有得到任何响应,而且似乎我的数据甚至没有被发布(当我在 proxy.php 的第一行之后尝试 echo $json 时,我得到一个空字符串)。为什么我无法回显 JSON?我的实现是否正确?
谢谢!
【问题讨论】:
【参考方案1】:在您的 Javascript 代码中,您使用的是这个:
data : jsonString
那么,从您的 PHP 代码中,您不应该从 $_POST['data']
读取,而不是 $_POST['json']
吗?
如有必要,您可以使用var_dump()
查看$_POST
中的内容:
var_dump($_POST);
在评论后编辑:如果您得到这样的 JSON 结果:
"result":1,"error":"","pic":"43248234af832048","code":"234920348239048"
这是一个 JSON 对象 -- 这意味着,在解码后,您应该在 PHP 中将其作为对象访问:
$response = json_decode($result);
echo $response->pic;
注意:我在该对象中看不到 picid
元素 - 也许您应该改用 pic ?
不过,您也可以在这里使用var_dump()
来查看您的数据的样子:
var_dump($response);
【讨论】:
我比你快 32 秒? ;-) 地狱^^ 是的!我现在正确获取数据。不过,另一个快速问题是:我是否将 JSON 数据 picid 正确附加到 URL 的末尾? 它应该在 json 对象中是 picid。那么我将它保存到 $imageHref 的那一行,我是否正确获取了 picid 并将其附加到 URL 的末尾?【参考方案2】:试试这个:
$json = $_POST['data'];
甚至更好
var_dump($_POST);
开始时查看帖子中的实际内容
【讨论】:
以上是关于php json存储问题的主要内容,如果未能解决你的问题,请参考以下文章
PHP/MySQL - 将数组数据存储为 JSON,不好的做法?