我需要解码json
的帮助if($loop->have_posts()) :
$json = '{';
$json .= '
"api_status":1,
"api_message":"success",
"data": [';
while ( $loop->have_posts() ) : $loop->the_post();
$json .= '{
"id":'.get_the_ID().',
"post_name":"'.get_the_title().'"
},
';
endwhile;
$json = substr($json,0,-1);
$json .= ']}';
echo $json;
endif;
break;
}
我的错误是
在上一个}
我还有,
所以我需要删除它。
但我不知道怎么办? 有人帮帮我吗?
答案 0 :(得分:1)
正如评论中所提到的,json_encode
是可行的方法。
$toEncode = array(
"api_status" => 1,
"api_message" => "success",
"data" => array()
);
while ($loop->have_posts()) {
$loop->the_post();
array_push($toEncode["data"], array(
"id" => get_the_ID(),
"post_name" => get_the_title()
));
}
echo json_encode($toEncode);
但是,我不太明白你的帖子系统如何运作。你在使用某种类型的迭代器吗?
答案 1 :(得分:1)
你可以使用php函数json_decode / encode:
f.ex。
json_decode($variable, true);
json_encode($variable, true);
答案 2 :(得分:0)
使用rtrim($json, ",");
删除json输出中的最后一个逗号
if($loop->have_posts()) :
$json = '{';
$json .= '
"api_status":1,
"api_message":"success",
"data": [';
while ( $loop->have_posts() ) : $loop->the_post();
$json .= '{
"id":'.get_the_ID().',
"post_name":"'.get_the_title().'"
},';
endwhile;
$json = rtrim($json, ",");
$json .= ']}';
echo $json;
endif;
break;
}
另一种方式
$json = new array();
if($loop->have_posts()) :
$json["api_status"] = 1,
$json["api_message"] = "success",
$json["data"] = new array();
while ( $loop->have_posts() ) : $loop->the_post();
$json["data"]["id"] = get_the_ID();
$json["data"]["post_name"] = get_the_title();
endwhile;
echo json_encode($json);
endif;
break;
}