2017-07-21 7 views
-2

私は次のようなJSONファイルを持っている:json_decodeの使い方は?

[{"Datum":"21-07-2017","Zeit":"21:48","Menge":"545465476"},{"Datum":"21-07-2017","Zeit":"21:51","Menge":"78"},{"Datum":"21-07-2017","Zeit":"21:53","Menge":"456"}] 

をJSONバリデータは、その[OK]を言います。

しかし、私はこのJsonファイルをphp_decode()で読み込むことはできません。代わりに、私は私が間違っている "BOOL(偽)"

私のコード

$jso = json_encode($jfile); 
var_dump(json_decode($jso)); 
$error = json_last_error(); 

何をやって取得していますか?

このスクリプトは、入力をtxtデータベースにJson形式で保存しています。

+0

'$ jfile'をどのように宣言しますか? – Daniel

+0

エンコードの前に 'print_r($ jfile);'を表示 – GrumpyCrouton

+1

なぜ、すでにエンコードしているのですか? – AbraCadaver

答えて

1

あなたが最初にPHPにファイルを取得する必要がありますので、$ JSOは、(ファイル内容の面で)JSONデータを保持しますね。あなたは、確認のために以下のリソースを参照することができます:

だから問題は、ほとんどの場合、あなたが関数にJSONを取得する方法です。あなたの場合、これは変数 "$ jfile"で行われます。

$ jfile変数のvar_dumpを実行して、それが保持しているデータがあるかどうかを確認することをお勧めします。

私が最初に推測したことは、他の人が指摘しているように、あなたがファイル(したがって$ jfile)からjsonを読み込んでいるということです。これは通常、 "file_get_contents"関数で行われます。詳細については、hereを参照してください。


実施例

あなたのディレクトリ構造は次のようになります。

. 
├── readjson.php 
├── some_json_data.json 

そして、あなたのPHPコードは次のようになります。私は追加する方法

<?php 

$jfile = file_get_contents('some_json_data.json'); 
var_dump($jfile) 

$jso = json_encode($jfile); 
var_dump($jso); 

$decoded_json = json_decode($jso); 
var_dump($decoded_json); 

$error = json_last_error(); 
?> 

は注意をより多くのvar_dumpと、jsonオブジェクトの状態を明示的に監視する変数。これは、新しいものを学ぶときに役立ちます。

0

私はあなたのJSONエンコードとデコードが正しい見える

$jso = file_get_contents('JSON_FILE_PATH'); 
    //then simply use json_decode 
    var_dump(json_decode($jso)); 
+0

こんにちは、OPは "$ jfile"を使用してjsonにロードしています。今のところそれをそのまま維持しておくと、OPに従う方が簡単です。 –