ホームページ バックエンド開発 PHPチュートリアル ヘルプ: このような JSON 文字列のフォーマット方法、構文の書き方は? ()

ヘルプ: このような JSON 文字列のフォーマット方法、構文の書き方は? ()

Jun 23, 2016 pm 02:00 PM

たとえば、2 次元配列があります
$myarrnews=array();
$myarrnews =explode("||**||", $mystr); // コンテンツは $mystr から取得されます。 records
$myarrline= array();
$myarrline =explode("||%%||", $myarrnews[$i]); //$myarrline は複数のフィールドを含むレコードの 1 つです
print_r($myarrline ); 各ニュースのフィールドのコレクション、例: Array ([0] => 10 [1] => 2166 [2] => Innovation...
次に、このような JSON 文字列、形式が必要です。は:(一時的に1ページに5件表示するように設定)
{
"ret": 0,
"data": {
"newslist": [
"ret": "最初のニュースのタイトル",
"commentcount" : 0、
"source": "ソース"、
"nid": 10、
"ダイジェスト": "ニュース"、
"ptime": "2012-03-28 14:11:43"
}、

"title": "2 番目のニュースのタイトル",
"commentcount": 0,
"source": "ソース", nid": 9,
"digest": "ニュース紹介",
"ptime" : " 2012年-03-28 13:12:56"
}, mentcount": 0、
"source": "source"、
"nid ": 8、
"ダイジェスト": "ニュース紹介",
"ptime": " 2012-03-28 12:21:11"
}、 "コメント数": 0、
"ソース": "ソース"、
"nid": 7、
"digest": "ニュース紹介"、
"ptime": "2012-03-28 11:21:00"
}、

「コメント数」: 1、
「ソース」: “source”,
“nid”: 5,
“digest”: "ニュース紹介",
"ptime": "2012-02-18 19:20:01 "
" " " }
" " " ], " "totalnum": 5
" " }, " "msg": "ok"
}
//---------------------- -- ----
PHP 構文の書き方?助けてください、緊急に必要です!


ディスカッション (解決策) に返信します
私は php の初心者で、間違いなく初心者です。返信するときは、コードと手順の詳細を教えてください。ありがとうございます

$mystr の内容は何ですか? 元のデータがどのようなものかを常に投稿する必要があります。

[code=php]詳細:
$weblink="http://www.xxx.net.cn/news/getnews.asp?cid=4&topnum=10";
$mystr=file_get_contents($weblink); $myarrnews=array();
// ニュース条件を配列に分割します
$myarrnews =explode("||**||", $mystr); // print_r ($myarrnews);分類ID以下の10個のデータ
//特定のコンテンツ条件を配列に分割
/*
以下は収集されたデータセットを説明します。つまり、各データには以下のフィールド情報が含まれており、この情報は$myarrnews で入手しました!
0: 収集した情報量を表す
1: 情報元ID番号(ニュース分類ID番号)
2: 情報タイトル
3: 情報カテゴリ
4: 情報内容
5: ホームページ画像の有無
6: 訪問数
7: リリース担当者
8: サブタイトル
9: 情報リリース時間
*/
$obj->ret=0;
$newslist=array("newslist"=>array()); =0;$ i 10 [1 ] => 2166 => 模範的な従業員のための家庭を作る革新的な労働組合の取り組み [4] => 例:
if ($myarrline[$i] !="") $ニュースリスト[$i]=>'タイトル'=$myarrline[2];
ニュースリスト[$i]=>コメント数=0; $ newsList [$ i] = & gt; 0;
$ Newslist [$ i] = & gt; $ myarrline [9];
本物の URL を教えてください
元のアドレスは使用できません。セキュリティ上の理由から、情報が詳しく記載されています。主人公は他にどんな情報を望んでいるのだろうか?
生成された JSON 文字列が類似している限り

次に、少なくとも 1 つのデータを指定する必要があります (架空の場合でも)
そして、JSON メンバーとの対応関係を指摘する必要があります

実際、フロア #3 のコードを読んで次の行を確認すると、次の行が表示されます。
$newslist[$i]=>'title'=$myarrline[2];
必要な形式をおおよそ推測できます。一般的な構文形式がある限り、各フィールドに 1 つずつ対応する必要はありません (実際、一部のフィールドはまだ変更する必要があります)。さらに詳しい内容をご覧になりたいので、改めて説明させていただきます。
//----------------------------------------------- --- --------------------------------------------------- --- --
$weblink="http://www.xxx.net.cn/news/getnews.asp?cid=4&topnum=5";
$mystr=file_get_contents($weblink); ();
//ニュース条件を配列に分割します
$myarrnews =explode("||**||", $mystr); // print_r ($myarrnews);このカテゴリ ID コレクション
//特定のコンテンツ条件を配列に分割します
//上記のコードは、asp Web ページから cid=4 で分類されたニュース (大学ニュースなど) の合計 5 つのレコードを取得できます
//--- ---------- -------------------------------------- ------- -------------------------------------
//以下コード、変数 $myarrline ニュース レコードの 1 つについて、このニュース レコードには 10 個のフィールドが含まれており、値が取得されています。 2 番目のフィールドはニュース ID 番号 (つまり、nid)、[1] => 2166 (0# フロア コードを参照) です。 3 番目のフィールドはニュースのタイトルです。例: [2] => 労働組合の働き方の革新、従業員のモデルホームの作成など。一つずつ説明するつもりはありません。このニュースは、取得した 5 つのニュース項目のうちの最初のニュースです。誰もがそれを理解しています! ? //各ニュースのフィールドのコレクション、例: Array ([0] => 5 [1] => 2166 [2] => モデル従業員ホームを作成するための革新的な労働組合の取り組み [3] => ; 大学ニュース [4] =>...
/ /---------------------------- -------------- -------------------
//最後に、次の json 文字列に変換して再編成する必要があります。フロア 0# は 5 つのレコードを含む配列であり、各レコードにはタイトル 2 などのフィールドが必要です。完了しました!

人を助けることには間違いがつきものです


私はこのコードだけでは理解できません。 newlist 配列内の 5 つのレコードがループを使用して実装されている 0# フロア JSON 文字列の例です
もう一度、ありがとうございます

 $newslist[$i] = array(  'title' => $myarrline[2],  'commentcount' => 0,  'source' => $myarrline[7],  'nid' => $myarrline[1],  'replycount' => 0,  'ptime' => $myarrline[9],);
ログイン後にコピー

$newslist #8 の生成が実証されました。例に従うことができます

実は私の当初の意図はこうでした:
//-------------------------------------- ------ - $ i< count($ myarrnews); $ i ++){||各ニュースの各分野のコレクション。例: array ([0] = & gt; 10 [1] = & gt ; 2166 [2] => 労働組合の活動を革新し、模範的な労働者の居場所を作る [3] =>大学ニュース [4] =>
No$i";
gt ;getTitle();
$newsobj->setSource($myarrline[7]); line[1]);
$newsobj- >setReplycount(0) j; //ここの割り当てに問題があります
「今年中に収集されたデータはありません。このサイトには最新のデータ情報がない可能性があります。 ";
in

echo "元の ID : ".$myarrline[1]."

echo "タイトル: ".$myarrline[2]."< ;br />";
echo "カテゴリ: ".$myarrline[3]."
";
//$bodyneirong=preg_replace(']*?)>','',myarrline[4]); echo "コンテンツ: ".$myarrline[4]."< br />";
echo "写真: ".$myarrline[5]."
";
echo "訪問: ".$myarrline[6]."

echo "発行者: ".$myarrline[7]."
";
echo "字幕: ".$myarrline[8]."
";
echo "; ".$myarrline[9]."
";
echo "


";
*/
$obj->msg ="ok";
print_r(json_encode ($obj) ));
$newslist=NULL;
? ----------
$newslist[$i]=>$newsobj;ここ! !
さらに、私は合計 2 時間しか php を学習していませんが、
$obj->ret=0; と
$obj = array(
!

$data = array(" newslist"=>$newlist,"totalnum"=>5);
明らかに、値の割り当ては for ループの前ではなく後に行う必要があります。

いいえ、そのプロンプト行にはまだ問題があり、モバイル コードも機能しません:
$obj->ret=0;
$data=array("newslist") =>$newslist," totalnum"=>5);
for ($i=0;$i エコー "---------- ------" ;
$myarrline=array();
$myarrline =explode("||%%||", $myarrnews[$i]);
print_r($myarrline); //コレクション各ニュースのフィールド数、例:Array ([0] => 10 [1] => 2166 [2] =>gt; 労働組合活動の革新と従業員のモデルホームの作成 [3] => College News [ 4] => if ($myarrnews [$ i]! = "") {
echo "no $i";
$ newSobj- & GT; ".$newsobj->getTitle(); //ここでタイトルの値を取得できます

$newsobj->setNid($myarrline[1]); );このサイトには最新のデータ情報がない可能性があります。 ";
."
";
echo "元の ID: ".$myarrline[1]."
";
echo "タイトル: ".$myarrline[2]"。
";
echo "カテゴリ: ".$myarrline [3]."
";
//$bodyneirong=preg_replace('] *?)>','',myarrline[4]);
echo "コンテンツ:".$myarrline[4]."
";
echo "画像:".$myarrline[5] ."
";
echo "訪問者:" .$myarrline[6]."
";
echo "発行者: ".$myarrline[7]."
";
echo "字幕: ".$myarrline[8 ]."
";
echo "发布时间:".$myarrline[9]."
";
echo "


";
*/
$obj->msg ="ok";
print_r(json_encode($obj));

for ($i=0;$i echo "-----------------";
$myarrline=array();
$myarrline =explode("||%%||", $myarrnews[$i]);
print_r($myarrline); //每个新闻各个字段的集合,例如:Array ( [0] => 10 [1] => 2166 [2] => 创新工会工作 创建模范职工之家 [3] => 学院新闻 [4] =>
if ($myarrnews[$i]!="") {

$newslistarr=array('title' => $myarrline[2], 'commentcount' => 0, 'source' => $myarrline[7], 'nid' => $myarrline[1], 'replycount' => 0, 'ptime' => $myarrline[9], );
$newslist[$i]=$newslistarr;
}
//--------------------------------------------
这样也不行,格式化后结果:{"ret":0,"data":{"newslist":[],"totalnum":5},"msg":"ok"} 数组是空的。
无奈了,php语法究竟怎么写呢?

$newslist[$i] = $newsobj
你的多了个>

$newslist[$i] = $newsobj
你的多了个>
是的,我这里写错了,不过改正之后,还是不行
格式化后结果:{"ret":0,"data":{"newslist":[],"totalnum":5},"msg":"ok"} 数组是空的。

我已经放弃使用对象了,php里对象转数组效率太低!

终于整出来了!是php二维数组的语法格式不会啊,绕了很多弯路。十分感谢ohmygirl的帮忙!
把代码贴出来,供大家参考下:
//---------------------------------------------------------------

<?php//数据库信息编码的设置header("Content-type: text/html; charset=utf-8");?> <?php/************************************************************** * *	使用特定function对数组中所有元素做处理 *	@param	string	&$array		要处理的字符串 *	@param	string	$function	要执行的函数 *	@return boolean	$apply_to_keys_also		是否也应用到key上 *	@access public * *************************************************************/function arrayRecursive(&$array, $function, $apply_to_keys_also = false){    static $recursive_counter = 0;    if (++$recursive_counter > 1000) {        die('possible deep recursion attack');    }    foreach ($array as $key => $value) {        if (is_array($value)) {            arrayRecursive($array[$key], $function, $apply_to_keys_also);        } else {            $array[$key] = $function($value);        }         if ($apply_to_keys_also && is_string($key)) {            $new_key = $function($key);            if ($new_key != $key) {                $array[$new_key] = $array[$key];                unset($array[$key]);            }        }    }    $recursive_counter--;} /************************************************************** * *	将数组转换为JSON字符串(兼容中文) *	@param	array	$array		要转换的数组 *	@return string		转换得到的json字符串 *	@access public * *************************************************************/function JSON($array) {	arrayRecursive($array, 'urlencode', true);	$json = json_encode($array);	return urldecode($json);}?><html>  <head>    <title>校园移动APP    </title>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  </head>  <body  leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">    <table  width="890"  border="0" cellpadding="4" cellspacing="3" align="left" style="font-size:13px">      <tr><td>          <hr>导航---【采集结果】2:          <br>          <br>          <br>          <br><?php		//信息采集地址,参数是默认采集当前年份下10条信息 系统限制到最大50条信息						 $weblink="http://newinfor.lnmec.net.cn/news/getnews.asp?lx=74&topnum=5";				// echo $weblink;				 $mystr=file_get_contents($weblink);//每次10条!				 $myarrnews=array();				 //拆分分条新闻条件成数组				 $myarrnews =explode("||**||", $mystr);			//	   print_r ($myarrnews);              //该分类ID下前10条数据的集合				 //拆分具体内容条件成数组    				 /*				    下面对采集的数据集合进行描述					0:代表采集信息数量					1:信息原始ID号 (新闻分类ID号)					2:信息标题					3:信息类别					4:信息内容					5:是否首页图片					6:访问量					7:发布人					8:副标题					9:信息发布时间				 */         $obj=array();				 $obj["ret"]=0;	                  $newslist=array();	 				          for ($i=0;$i<count($myarrnews);$i++){                       echo "-----------------";				   $myarrline=array();		            $myarrline =explode("||%%||", $myarrnews[$i]);                 print_r($myarrline);                     //每个新闻各个字段的集合,例如:Array ( [0] => 10 [1] => 2166 [2] => 创新工会工作 创建模范职工之家 [3] => 学院新闻 [4] =>					 if ($myarrnews[$i]!="") {             echo "No$i";               $newslist[$i]['title']=$myarrline[2] ;               $newslist[$i]['commentcount']=0 ;              $newslist[$i]['source']=$myarrline[7] ;              $newslist[$i]['nid']=$myarrline[1] ;              $newslist[$i]['replycount']=0;              $newslist[$i]['ptime']=$myarrline[9] ;              }            else					  {					    echo "在当前年度内没有采集到数据!可能是本站没有最新数据信息!"; 					  }                       }          $data=array("newslist"=>$newslist,"totalnum"=>5);           $obj["data"]=$data; 				  $obj["msg"] ="ok";  								  print_r(JSON($obj));           				  $newslist=NULL;				  $obj=NULL;           ?>          </td>      </tr>    </table>  </body></html>
ログイン後にコピー
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Laravelでフラッシュセッションデータを使用します Laravelでフラッシュセッションデータを使用します Mar 12, 2025 pm 05:08 PM

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

LaravelのバックエンドでReactアプリを構築する:パート2、React LaravelのバックエンドでReactアプリを構築する:パート2、React Mar 04, 2025 am 09:33 AM

これは、LaravelバックエンドとのReactアプリケーションの構築に関するシリーズの2番目と最終部分です。シリーズの最初の部分では、基本的な製品上場アプリケーションのためにLaravelを使用してRESTFUL APIを作成しました。このチュートリアルでは、開発者になります

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelテストでの簡略化されたHTTP応答のモッキング Laravelテストでの簡略化されたHTTP応答のモッキング Mar 12, 2025 pm 05:09 PM

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

Laravelの通知 Laravelの通知 Mar 04, 2025 am 09:22 AM

この記事では、Laravel Webフレームワークの通知システムを検討します。 Laravelの通知システムを使用すると、さまざまなチャネルでユーザーに通知を送信できます。今日は、通知ovを送信する方法について説明します

PHPにおける後期静的結合の概念を説明します。 PHPにおける後期静的結合の概念を説明します。 Mar 21, 2025 pm 01:33 PM

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

PHPロギング:PHPログ分析のベストプラクティス PHPロギング:PHPログ分析のベストプラクティス Mar 10, 2025 pm 02:32 PM

PHPロギングは、Webアプリケーションの監視とデバッグ、および重要なイベント、エラー、ランタイムの動作をキャプチャするために不可欠です。システムのパフォーマンスに関する貴重な洞察を提供し、問題の特定に役立ち、より速いトラブルシューティングをサポートします

See all articles