Rumah > pembangunan bahagian belakang > tutorial php > 求助!!php json 字符串问题

求助!!php json 字符串问题

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2016-06-23 14:39:15
asal
1402 orang telah melayarinya

本帖最后由 zl2727 于 2013-12-10 16:14:43 编辑

$proquery ="select * from #@__keyproduct where typeid='".$id."' order by corank asc"; 

$dsql->SetQuery($proquery); 
$dsql->Execute();
 $i=0; 
while($row = $dsql->GetArray()) { 

$arrystr.='{"id":"'.$row["id"].'","title":"'.$row["goodstitle"].'","goodsTitle":"'.$row["goodstitle"].'","price":"'.$row

["price"].'","imgUrl":"'.$row["imgurl"].'","goodsUrl":"'.$row["goodsurl"].'","brandName":"'.$row

["brandname"].'","brandUrl":"'.$row["brandurl"].'"},';

 $i++;
 }

 if($i>0){ $arrystr=substr($arrystr,0,$arrystr.lenght-1); }
如果这样写
 $a='{"status":"1","result":['.$arrystr.'],"moreUrl":"'.$moreurl.'"}'; 
AJAX返回 {"status":"1","result":[],"moreUrl":"http:\/\/"}
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://jianfei.ecoo.com.cn/shuig

uo/"}'; 

$a = iconv("gbk", "UTF-8", $a);
$a=json_decode($a, true);
echo json_encode($a);


请大神们指教一下 谢谢!

回复讨论(解决方案)

$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}]
Salin selepas log masuk

你应该知道怎么写了吧?

虽然 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); }
Salin selepas log masuk

3、这样构造输出数据
$res = array(  'status' => '1',  'result' => $a,  'moreUrl' => $moreurl,);echo join_encode($res);
Salin selepas log masuk

版主您好 这样写 输出也是对的

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://shuig
uo/"}';

我是mysql数据库

	$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 class="brush:php;toolbar:false">',var_dump($Json),'
Salin selepas log masuk
'; $array=array('a'=>'A','B'=>2); $a=json_encode($array); echo '
',var_dump($a),'
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
'; $a=serialize($array); echo '
',var_dump($a),'
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
'; $a=unserialize($a); echo '
',var_dump($a),'
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
';die();

sibang 您好 我没有找到单双引号问题 现在还是没有解决  

我是 php+ajax+json

谢谢 大神们的支持 由于小弟疏忽  

在AJAX请求时 路径写错 

其他啥问题都没有  

结贴!!!

呵呵,看来还是要仔细

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan