你好,我需要为我正在构建的代码创建一个json编码api
目前我的项目有3个表项目表,支付表和短信表
项目表包含我项目的详细信息,项目表链接到支付和短信表
我列出了我想制作的json表单
{
"Data": {
"Projects": [{
"id": "10023",
"Info": "Arabic project info ",
"paymentMethods": {
"Bank": [{
"accname": "Zakat Acc",
"accnameEn": "حساب الزكــــــاة",
"country": "UAE",
"acc": "0034430430012"
}, {
"accname": "Zakat Acc",
"accnameEn": "حساب الزكــــــاة",
"country": "UAE",
"acc": "00344304332412"
}],
"SMS": [{
"operatorEn": "etisalat",
"shortcode": "4236",
"operator": "إتصالات"
}, {
"operatorEn": "etisalat",
"shortcode": "4346",
"operator": "إتصالات"
}],
"CC": {
"-URL":
"http://www.sharjahcharuty.org/donations/"
}
}
}, {
"id": "10026",
"Info": "Arabic project info ",
"InfoEn": "project info in english",
"paymentMethods": {
"Bank": [{
"accname": "Zakat Acc",
"accnameEn": "حساب الزكــــــاة",
"country": "UAE",
"acc": "0034430430012"
}, {
"accname": "Zakat Acc",
"accnameEn": "حساب الزكــــــاة",
"country": "UAE",
"acc": "00344304332412"
}],
"SMS": [{
"operatorEn": "etisalat",
"shortcode": "4236",
"operator": "إتصالات"
}, {
"operatorEn": "etisalat",
"shortcode": "4346",
"operator": "إتصالات"
}],
"CC": {
"-URL": "http://www.sharjha.org/donations/"
}
}
}]
}
}
我已经为系统创建了php代码但是我已经使用括号创建了这段代码,并用查询分隔,但这个系统没有给出我期望的结果
echo $string='{"Data":{';
//echo $string='"Projects":';
$sql2 = "SELECT * FROM wg_items where cat_id=6007;";
$query = $this->db->query($sql2);
echo $string='"Projects":';
echo $string='[';
$intcount=0;
$scateg="";
if ($query->num_rows() > 0) {
foreach ($query->result() as $row){
//$jsonrows[]=array("id"=>$row->cat_id,"name"=>$row->item_name);
echo $string='{';
echo $string = 'id:'.$row->item_id;
echo $string=',';
echo $string = 'name:'.$row->item_name;
echo $string=',';
//-------------------------------------------------------------//
$hasComma = false;
echo $string='"paymentmethods":';
echo $string='"Bank":[';
$sql2 = "SELECT * FROM paymentmethods where cid=587 ";
$query = $this->db->query($sql2);
foreach ($query->result() as $row){
echo '{';
echo $string = 'accname:'.$row->acc.',' ;
echo $string = 'country:'.$row->IBAN.',' ;
echo $string = 'Iban:'.$row->Bankname.',' ;
echo $string = 'Bankname:'.$row->Bankname.',' ;
echo $string = '},';
}
echo $string = '],';
echo $string='"SMS":[';
$sql3 = "SELECT * FROM sms where cid=537 ";
$query = $this->db->query($sql3);
$hasComma = false;
foreach ($query->result() as $rows){
echo '{';
echo 'Operator:'.$rows->operator.',' ;
echo 'shortcode:'.$rows->shortcode.',';
echo 'keyword:'.$rows->keyword.',';
echo 'price:'.$rows->price;
echo $string = '},';
if($hasComma = TRUE)
{
}
$hasComma = TRUE;
}
echo $string = '}],';
echo $string='"CC":{';
echo $string3='"-URL:"';
echo $string3='"HTTP:SHARJAHCHARTITY.COM"';
ECHO '}}}';
echo ',';
}
echo ']}}}';
您不需要附加字符串来创建json字符串。创建一个保存数据的数组,并使用json_encode()函数包装它例如:
<?php
$array_data=[];
$array_data['firstname']="Rafique";
$array_data['lastname']="Mohammed";
$array_data['email']="plus.arr@gmail.com";
// or any data which you want in json
$json_output=json_encode($array_data);
echo $json_output;
输出:
{"firstname":"Rafique","lastname":"Mohammed","email":"plus.arr@gmail.com"}
更新2:
在您的情况下
<?php
//.. your code
if ($query->num_rows() > 0) {
foreach ($query->result() as $row){
$jsonrows=array("id"=>$row->item_id,"name"=>$row->item_name);
$jsonrows["paymentmethods"]=array("Bank"=>[]);
$sql2 = "SELECT * FROM paymentmethods where cid=587 ";
$query = $this->db->query($sql2);
foreach ($query->result() as $row){
//convert bank as array
$jsonrows["paymentmethods"]["Bank"][] = array(
"accname"=>$row->acc,
"country"=>$row->IBAN,
"Iban"=>$row->Bankname,
"Bankname"=>$row->Bankname );
}
//DO IT FOR REST OF THE CODE