php數組輸出這樣的json

來源:互聯網
上載者:User
請問如何輸出這樣的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<$pos; $j++){                  $ret .= $indent;              }          }            $ret .= $char;                    if(($char==',' || $char=='{' || $char=='[') && $outofquotes){              $ret .= $newline;              if($char=='{' || $char=='['){                  $pos ++;              }                for($j=0; $j<$pos; $j++){                  $ret .= $indent;              }          }            $prevchar = $char;      }        return $ret;  }    /** 將數組元素進行urlencode * @param String $val */  function jsonFormatProtect(&$val){      if($val!==true && $val!==false && $val!==null){          $val = urlencode($val);      }  }    header('content-type:application/json;charset=utf8');  $result = array('data' => 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都可以不用了。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.