json を使用すると PHP が常にエラーを報告するのはなぜですか?
$res = '{
"status": "ok", //インターフェイスのステータス、http://www.heweather.com/documents/api を参照
"basic": { / /基本情報
"city": "Beijing", //都市名
"cnty": "中国", //国
"id": "CN101010100", //都市ID、http://www.heweatherを参照.com/documents/cn-city-list
"lat": "39.904000", //都市のディメンション
"lon": "116.391000", //都市の経度
"update": { //更新時刻
"loc" : "2015-07-02 14:44", //現地時間
"utc": "2015-07-02 06:46" //UTC 時間code($ res)) //結果を表示します
// $json = '{"foo": 12345}'
// $obj = json_decode($json)// print $obj->{'foo' }; // 12345
;
エラーは、/Applications/MAMP/htdocs/testjson.php の 5 行目の構文エラー、予期せぬ 'ステータス' (T_STRING) に似ています
これがあなたのコードのすべてですか?次に、json 内のコメントを削除します。 。 。
コードはこれですべてですか?次に、json 内のコメントを削除します。 。 。
コメントを削除すると実際に表示されるようです、次のようなものです
object(stdClass)#1 (2)
{
["status"]=> string(2) "ok"["basic" ] => オブジェクト(stdClass)#2 (6)
["都市"]=> 文字列(6) "北京"
["cnty"]=> 文字列(6) "中国"[" id "]=> 文字列(11) "CN101010100"
["lat"]=> 文字列(9) "39.904000" ["lon"]=> 文字列(10) "116.391000" ["更新" ] => オブジェクト(stdClass)#3 (2) ["loc"]=> 文字列(16) "2015-07-02 14:44"["utc"]=> 文字列(16) ) "2015-07-02 06:46"
}
}}
バージョンを揃えるとこんな感じ 例えば $res = json_decode($res) の「id」の値をどうやって取り出せばよいのでしょうか。この配列は?
$obj->basic->id
json_decode($json, true);
出てくるのは配列です
単一のものを抽出する方法はないようですデータ値
URLからjsonを取得すると、パッケージの後、 $res =curl_exec($ch); どのように処理されても、抽出したいフィールドの1つではなく、jsonパッケージ全体が表示されます
$ch =curl_init();
$ url = 'https://api.heweather.com/x3/weather?cityid=CN101200101&key=7081f8010abe4638a86e0c4c1cfee30e'
// HTTP リクエストを実行
curl_setopt($)ち、 CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
echo $res['now'] ['cond']['txt'];
?>
このリクエストは必要な気象値を取得できません
echo $res[key($res)][0]['now']['cond']['txt']; //Cloudy
実際、print_r($res); とするとわかります。現在は 3 次元にあります
$res = '{ "status": "ok", "basic": { "city": "北京", "cnty": "中国", "id": "CN101010100", "lat": "39.904000", "lon": "116.391000", "update": { "loc": "2015-07-02 14:44", "utc": "2015-07-02 06:46" } }}';var_dump(json_decode($res)); //显示结果
object(stdClass)[1]
public 'status' => string 'ok' (length=2)
public 'basic' =>
object(stdClass )[2]
public 'city' => 文字列 '北京' (length=6)
public 'cnty' => 文字列 '中国' (length=6)
public 'id' =>文字列 'CN101010100' (長さ=11)
パブリック 'lat' => 文字列 '39.904000' (長さ=9)
パブリック 'lon' => 文字列 '116.391000' (長さ=10)
パブリック 'update' => ;
オブジェクト(stdClass)[3]
使用する 使用する 使用する=16)
IDを取得するには、次のように記述できます
$res = '{ "status": "ok", "basic": { "city": "北京", "cnty": "中国", "id": "CN101010100", "lat": "39.904000", "lon": "116.391000", "update": { "loc": "2015-07-02 14:44", "utc": "2015-07-02 06:46" } }}';$data = json_decode($res); //显示结果echo $data->basic->id;
CN101010100
エコー$res[key($res)][0]['now']['cond']['txt']; / /Cloudy
実際、print_r($res); とすると、次のことがわかります。 3次元で
まだ機能していないようです。あなたのメソッドを試してみましたが、何も出力できません
コメントを削除してください
$res = '{ "status": "ok", "basic": { "city": "北京", "cnty": "中国", "id": "CN101010100", "lat": "39.904000", "lon": "116.391000", "update": { "loc": "2015-07-02 14:44", "utc": "2015-07-02 06:46" } }}';var_dump(json_decode($res)); //显示结果
object(stdClass)[1]
public 'status' => 文字列 'ok' (長さ=2)
パブリック '基本' => オブジェクト(stdClass)[2]
パブリック '都市' => パブリック 'cnty' => 文字列 '中国' (長さ=6)
パブリック 'id' => 文字列 'CN101010100' (長さ=11)
パブリック '緯度' => '(長さ=9)
パブリック 'lon ' => 文字列 '116.391000' (長さ=10)
public 'update' =>
object(stdClass)[3]
public 'loc' => =16)
Public 'utc' => string '2015-07-02 06:46' (length=16)
ID を取得するには、次のように記述できます
$res = '{ "status": "ok", "basic": { "city": "北京", "cnty": "中国", "id": "CN101010100", "lat": "39.904000", "lon": "116.391000", "update": { "loc": "2015-07-02 14:44", "utc": "2015-07-02 06:46" } }}';$data = json_decode($res); //显示结果echo $data->basic->id;
CN101010100
7 階にある私のコードとそこから天気テキストを抽出する方法を見てください
$ch = curl_init();$url = 'https://api.heweather.com/x3/weather?cityid=CN101200101&key=7081f8010abe4638a86e0c4c1cfee30e';// 执行HTTP请求curl_setopt($ch , CURLOPT_URL , $url);curl_setopt($ch , CURLOPT_SSL_VERIFYPEER , false);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);$res = json_decode(curl_exec($ch), true); //json_decode 要有第二个参数,这样可解析成数组echo $res[key($res)][0]['now']['cond']['txt'], PHP_EOL; //为什么要这样写,看看 print_r 的输出就知道了print_r($res);

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

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

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

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

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。
