求助!!php json 字符串问题 本帖最后由 zl2727 于 2013-12-10 16:14:43 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $r['a'] = 123;echo json_encode($r); //得到 {"a":123}$a[] = $r;$a[] = $r;$a[] = $r;echo json_encode($a); //得到 [{"a":123},{"a":123},{"a":123}]你应该知道怎么写了吧?虽然 php 的 json 函数只支持 utf-8 编码,但你可以要求数据库返回 utf-8 编码的数据 版主您好 我将代码修改成这样 可还是不行 我是学.net的 Php实在太差 麻烦您在指导一下 谢谢$a=array(); while($row = $dsql->GetArray()) { $a[]= $row; } $a='{"status":"1","result":'.json_encode($a).',"moreUrl":"'.$moreurl.'"}'; $a = iconv("gbk", "UTF-8", $a); $a=json_decode($a, true); echo json_encode($a); AJAX返回 {"status":"1","result":[],"moreUrl":"http:\/\/"}result 是空的 1、你用的是什么数据库?不会是 Access 吧?2、如果你无法让数据库返回 utf-8 编码的数据,可以这样function gtou($s) { return iconv('gbk', 'utf-8', $s); }$a=array();while($row = $dsql->GetArray()) { $a[]= array_map('gtou', $row); } 3、这样构造输出数据$res = array( 'status' => '1', 'result' => $a, 'moreUrl' => $moreurl,);echo join_encode($res); 版主您好 这样写 输出也是对的 但AJAX返回 {"status":"1","result":[],"moreUrl":"http:\/\/"}result 是空的我的QQ 272718467 要不您加下我的QQ指导一下 或者 关注我一下 可以吗? 这样直接返回数据库读出的数据 AJAX 就可以接到 result //$a='{"status":"1","result":[{"id":"1","title":"补水润肤膏 真的很好 很补水 皮肤有弹性","goodsTitle":"补水润肤膏 真的很好 很补水 皮肤有弹性","price":"59.9","imgUrl":"http:///sadas213/","goodsUrl":"http:///uploads/allimg/c131205/13V23912150-114L_lit.jpg","brandName":"","brandUrl":"http:///dsadasdas/"},{"id":"2","title":"补水润肤222","goodsTitle":"补水润肤222","price":"59.9","imgUrl":"http:///sadas213/","goodsUrl":"http:///uploads/allimg/c131205/13V23912150-114L_lit.jpg","brandName":"","brandUrl":"http:///dsadasdas/"}],"moreUrl":"http://shuiguo/"}'; $JsonStr='[ {"id":"1","name":"\u5f20\u96ea\u6885","age":"27","subject":"\u8ba1\u7b97\u673a\u79d1\u5b66\u4e0e\u6280\u672f"}, {"id":"2","name":"\u5f20\u6c9b\u9716","age":"21","subject":"\u8f6f\u4ef6\u5de5\u7a0b"} ]'; //被解析的字符串只能用雙引號,而不能用單引號 $Json=json_decode($JsonStr,TRUE); echo '<pre>',var_dump($Json),'</pre>'; $array=array('a'=>'A','B'=>2); $a=json_encode($array); echo '<pre>',var_dump($a),'</pre>'; $a=serialize($array); echo '<pre>',var_dump($a),'</pre>'; $a=unserialize($a); echo '<pre>',var_dump($a),'</pre>';die(); sibang 您好 我没有找到单双引号问题 现在还是没有解决 我是 php+ajax+json 谢谢 大神们的支持 由于小弟疏忽 在AJAX请求时 路径写错 其他啥问题都没有 结贴!!! 在原有代码上面加个查询功能。 如何用preg_match_all解析这段字符 点击链接之后,无法显示ID值所对应的其他内容 大家帮忙看一下哪样设计这个评论表的表结构算合理啊? 为什么php不认mysql_connect(), LINUX下,用什么php代码可以重启apache? 一个PHP分类数组循环问题 只知道部分文件名,咋迅速判断出该文件是否存在——稚嫩的问题 帮我看看! 现在php开发一般是开发网站多还是开发公主号的公司多? POST字符串的问题 求助!!php+ajax+ json 问题
echo json_encode($r); //得到 {"a":123}$a[] = $r;
$a[] = $r;
$a[] = $r;
echo json_encode($a); //得到 [{"a":123},{"a":123},{"a":123}]你应该知道怎么写了吧?虽然 php 的 json 函数只支持 utf-8 编码,但你可以要求数据库返回 utf-8 编码的数据
$a=array();
while($row = $dsql->GetArray()) {
$a[]= $row;
}
$a='{"status":"1","result":'.json_encode($a).',"moreUrl":"'.$moreurl.'"}';
$a = iconv("gbk", "UTF-8", $a);
$a=json_decode($a, true);
echo json_encode($a);
result 是空的
2、如果你无法让数据库返回 utf-8 编码的数据,可以这样
function gtou($s) { return iconv('gbk', 'utf-8', $s); }$a=array();
while($row = $dsql->GetArray()) {
$a[]= array_map('gtou', $row);
}
3、这样构造输出数据
$res = array(
'status' => '1',
'result' => $a,
'moreUrl' => $moreurl,
);
echo join_encode($res);
但
AJAX返回 {"status":"1","result":[],"moreUrl":"http:\/\/"}
result 是空的我的QQ 272718467 要不您加下我的QQ指导一下 或者 关注我一下 可以吗?
//$a='{"status":"1","result":[{"id":"1","title":"补水润肤膏 真的很好 很补水 皮肤有弹性","goodsTitle":"补水润肤膏 真的很好
很补水 皮肤有弹
性","price":"59.9","imgUrl":"http:///sadas213/","goodsUrl":"http:///uploads/allimg/c131205/
13V23912150-114L_lit.jpg","brandName":"","brandUrl":"http:///dsadasdas/"},{"id":"2","title":"补水润肤
222","goodsTitle":"补水润肤
222","price":"59.9","imgUrl":"http:///sadas213/","goodsUrl":"http:///uploads/allimg/c131205
/13V23912150-114L_lit.jpg","brandName":"","brandUrl":"http:///dsadasdas/"}],"moreUrl":"http://shuig
uo/"}';
$JsonStr='[
{"id":"1","name":"\u5f20\u96ea\u6885","age":"27","subject":"\u8ba1\u7b97\u673a\u79d1\u5b66\u4e0e\u6280\u672f"},
{"id":"2","name":"\u5f20\u6c9b\u9716","age":"21","subject":"\u8f6f\u4ef6\u5de5\u7a0b"}
]';
//被解析的字符串只能用雙引號,而不能用單引號
$Json=json_decode($JsonStr,TRUE);
echo '<pre>',var_dump($Json),'</pre>'; $array=array('a'=>'A','B'=>2); $a=json_encode($array);
echo '<pre>',var_dump($a),'</pre>'; $a=serialize($array);
echo '<pre>',var_dump($a),'</pre>'; $a=unserialize($a);
echo '<pre>',var_dump($a),'</pre>';die();