2011-12-22 12 views
1

私はCodeigniterでTransendit.comサービスを使用しようとしています。現在、通知ページを作成しようとしています。 POSTリクエスト(JSON形式)を受け取ってファイルに書き込むことができます。奇妙なことは、私はそれから関連するデータを抽出できるようにPHP配列にJSONオブジェクトを解析できないということです。ファイルに書き込む前にデコードすると、そのファイルは空になります。私がしなければ、JSONコードがファイルに書き込まれます。JSONオブジェクトを解析する方法は?失敗

$result = $_POST['transloadit']; 

$result = json_decode($result); // This produces empty content in file 

$this->load->helper('file'); 

if (! write_file('./files/myfile.php', $result)) 
{ 
echo 'Unable to write the file'; 
} else { 
echo 'File written!'; 
} 

ここで見つけることができるページに送信されたJSONオブジェクト:あなたはstdClassのオブジェクトを記述しようとしているhttp://pastie.org/3056727

+0

これはデコードするまでjsonオブジェクトに過ぎません。それはPHPのstdclassオブジェクトです。 –

+0

私の主な目的は、このJSONオブジェクトからデータを抽出し、それをデータベースに書き込むことです。どうやってやるの? (ファイルへの書き込みは、出力が見えるようにするだけです)。 –

答えて

3

(デコードされたJSON)

は、これは私のコントローラのコードです直接ファイルに - それは動作しません。

デコードしない$result - 元のjson文字列を使用してファイルに書き込みます。また、.jsonは有効なファイル形式です。.phpの代わりに使用することを検討してください(理にかなっているかもしれません)。

$result = $_POST['transloadit']; 
$this->load->helper('file'); 

// You can test for valid json like this: 
$is_valid_json = json_decode($result) !== NULL; 

if (! write_file('./files/myfile.json', $result)) { 
    echo 'Unable to write the file'; 
} 
else { 
    echo 'File written!'; 
} 
+0

ああ。しかし、私がファイルに書き込む理由は、結果を「見る」ことができることだけです。私が取り組んでいるページは、情報を表示しない「隠れた」ページです。 JSONオブジェクトからの情報でデータベースを更新します。私の主な目標は、JSONオブジェクトから関連するデータを抽出することです。どうやってやるの?ありがとう! –

+0

他のオブジェクトと同様にアクセスします。 '$ decoded = json_decode($ result)'としましょう。したがって、 '$ decoded-> message'は' 'アセンブリが正常に完了しました。 ''実際にここにキーと値のペア以上のものがあるので、あなたはそれをあなたのデータベース。私はあなたのためにその決定をすることはできませんし、私はそうするために必要な情報を持っていません。 –

+0

なぜそれがあなたのために働いていないのか分かりません。完全な爆発時のエラー報告を行い、 'var_dump()'のような基本的なデバッグ手法を使います。ここで私にとってうまく動作します:http://codepad.org/V9ygBWgQ –

関連する問題