ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHP チュートリアルでネストされた JSON を生成するソリューション

PHP_PHP チュートリアルでネストされた JSON を生成するソリューション

WBOY
WBOYオリジナル
2016-07-13 10:27:03934ブラウズ

PHPはネストされたJSONを生成します

({

「ああ」: [

{

「ID」:「0」、

"タイトル": "タイトル",

}、

{

「ID」:「1」、

"タイトル": "タイトル",

}

]、

"bb":[

{

}、

{

….

}

]

})

PHP はこのネストされた JSON をどのように生成しますか

------解決策---------------------

/**Jsonデータのフォーマット

* @param 混合 $data データ

* @param String $indent インデント文字、デフォルトはスペース 4 個

* @return JSON

*/

関数 jsonFormat($data, $indent=null){

// 中国語の文字を保護するために、配列内の各要素に対して urlencode 操作を再帰的に実行します

array_walk_recursive($data, 'jsonFormatProtect');

// jsonエンコード

$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

$char = substr($data, $i, 1);

if($char=='"' && $prevchar!='\'){

$outofquotes = !$outofquotes;

}elseif(($char=='}' ------解決策--------- $char==']') && $ outofquotes ){

$ret .= $newline;

$pos --;

for($j=0; $j

$ret .= $indent;

}

}

$ret .= $char;

if(($char==',' ------解決策---------------------- $char=='{' ---- - -解決策-------------------- $char=='[') && $outofquotes){

$ret .= $newline;

if($char=='{' ------解決策---------------------- $char=='['){

$pos++;

}

for($j=0; $j

$ret .= $indent;

}

}

$prevchar = $char;

}

$ret を返す;

}

/**Urlencode 配列要素

* @param String $val

*/

関数 jsonFormatProtect(&$val){

if($val!==true && $val!==false && $val!==null){

$val = urlencode($val);

}

}

ヘッダー('content-type:application/json;charset=utf8');

$arr = array(

'aa' => array(

配列(

'Id' => 0,

'タイトル' => 'タイトル'

), array( 'Id' => 1, 'title' => 'title' ), ), 'bb' => array( array( 'Id' => 2, 'title' => 'タイトル' ), array( 'Id' => 3, 'title' => 'タイトル' ), ));echo jsonFormat($arr);{ "aa":[ { "Id":"0" , "タイトル":"タイトル" }, { "ID":"1", "タイトル":"タイトル" } ], "bb":[ { "ID":"2", "タイトル":"タイトル" }, { "ID":"3", "タイトル":"タイトル" } ]}

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/820425.html技術記事 PHP はネストされた JSON ({ aa: [ { Id: 0, title: title, }, { Id: 1, title: title, } ], bb:[ { ... }, { .... } ] } ) を生成します。 PHP はこの種のネストされた JSON をどのように生成しますか ------解決策--------------...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。