博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php数组分行输出json_php数组输出这样的json
阅读量:5898 次
发布时间:2019-06-19

本文共 2733 字,大约阅读时间需要 9 分钟。

请问如何输出这样的json ?

{

data = (

{

"article_url" = "/disease/item/1";

"create_time" = "2014-08-11 11:38:58";

"knowledge_id" = 1;

title = "\U6d4b\U8bd5\U9057\U4f20\U75c5\U5e931";

},

{

"article_url" = "/disease/item/3";

"create_time" = "2014-07-22 15:38:28";

"knowledge_id" = 3;

title = "\U6211\U7684\U9057\U4f20\U77e5\U8bc6";

}

);

errcode = 0;

errdesc = "";

}

其中 ,来源于表的数据

"article_url" = "/disease/item/1";

"create_time" = "2014-08-11 11:38:58";

"knowledge_id" = 1;

title = "\U6d4b\U8bd5\U9057\U4f20\U75c5\U5e931";

表的循环读取程序,

$i=0;

$listarr=array();

while($db->ROW())

{

$listarr[$i]["article_url"]=$ROW[article_url];

$listarr[$i]["create_time"]=$ROW[create_time];

$listarr[$i]["knowledge_id"]=$ROW[knowledge_id];

$listarr[$i]["titlee"]=$ROW[title];

$i++;

}

如何通过这段 while程序输出最上面的json ?

请大家帮看看。

回复讨论(解决方案)

上面是组装的吧,代码给的不全。 errcode = 0;

errdesc = ""; 这两个哪里来的?

你的表数组没有这个值 errcode = 0; errdesc = "";

你可以打印原数组看看

print_r($listarr);

这个是数组合并的。主要是这部分的内容

data = (

{

"article_url" = "/disease/item/1";

"create_time" = "2014-08-11 11:38:58";

"knowledge_id" = 1;

title = "\U6d4b\U8bd5\U9057\U4f20\U75c5\U5e931";

},

{

"article_url" = "/disease/item/3";

"create_time" = "2014-07-22 15:38:28";

"knowledge_id" = 3;

title = "\U6211\U7684\U9057\U4f20\U77e5\U8bc6";

}

);

json?有??的?法,我想你大概意思是{ "data":[ { "article_url":"/disease/item/1", "create_time":"2014-08-11 11:38:58", "knowledge_id":"1", "title":"title1" }, { "article_url":"/disease/item/3", "create_time":"2014-08-11 11:38:58", "knowledge_id":"1", "title":"title3" } ], "errcode":"0", "errdesc":""}

/** Json数据格式化 * @param Mixed $data 数据 * @param String $indent 缩进字符,默认4个空格 * @return JSON */ function jsonFormat($data, $indent=null){ // 对数组中每个元素递归进行urlencode操作,保护中文字符 array_walk_recursive($data, 'jsonFormatProtect'); // json encode $data = json_encode($data); // 将urlencode的内容进行urldecode $data = urldecode($data); // 缩进处理 $ret = ''; $pos = 0; $length = strlen($data); $indent = isset($indent)? $indent : ' '; $newline = "\n"; $prevchar = ''; $outofquotes = true; for($i=0; $i<=$length; $i++){ $char = substr($data, $i, 1); if($char=='"' && $prevchar!='\\'){ $outofquotes = !$outofquotes; }elseif(($char=='}' || $char==']') && $outofquotes){ $ret .= $newline; $pos --; for($j=0; $j array(array('article_url' => '/disease/item/1','create_time' => '2014-08-11 11:38:58','knowledge_id' => 1,'title' => 'title1'),array('article_url' => '/disease/item/3','create_time' => '2014-08-11 11:38:58','knowledge_id' => 1,'title' => 'title3'),),'errcode' => 0,'errdesc' => '');echo jsonFormat($result);

如果不需要格式?,可以

echo jsonFormat($result);

改?

echo json_encode($result);

即可。

上面的function都可以不用了。

搞定,谢谢。

如果不需要格式?,可以

echo jsonFormat($result);

改?

echo json_encode($result);

即可。

上面的function都可以不用了。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

你可能感兴趣的文章
[转]“AIR SDK 0.0: AIR SDK location “...\devsdks\AIRSDK\Win” does not exist.”问题解决~
查看>>
(九) spring 使用自定义限定符注解
查看>>
SmartCoder每日站立会议 01
查看>>
Linux pip命令报错 -bash: pip: command not found
查看>>
win8+Ubuntu双系统安装方法
查看>>
AngularJS内置指令 ng-xxx
查看>>
一个C#程序员学习微信小程序的笔记
查看>>
HDU 5512 Pagodas
查看>>
Linux下添加新硬盘,分区及挂载(存在空闲内存情况下)
查看>>
java关于jdbc的配置与使用步骤
查看>>
MyEclipse下Maven的安装配置
查看>>
网盘搜索器 v1.0
查看>>
让虚拟机的软盘盘符不显示(适用于所有windows系统包括Windows Server)
查看>>
【摘】人生苦短,每日python
查看>>
软件架构的基本模式
查看>>
P3119 [USACO15JAN]草鉴定Grass Cownoisseur
查看>>
三层基本架构方向
查看>>
shu-Problem H: 建筑物中的套间
查看>>
java反射机制性能优化
查看>>
Eclipse+pydev 常用快捷键
查看>>