2016-09-20 8 views
0

私はpython関数の出力からphpにデータを移動し、それをJSONに変換して、AJAXで呼び出すjavascript関数に送ります。特定のパターンの文字列から余分な文字を削除するPHP

形式は次のようになります。今

{"data_name" : [1.02, 3.013, -24.12, 39], "data_name_2" : [-0.32151], "data_name_3" : [0.321, -21.42425, 225125.002]} 

、Pythonはjson.dumpsを介してデータを返しているし、それがPHPに達すると出力は一種の奇妙です。データがすでにパイソンからJSONであるので、json_encodeが正しく動作しませんが、ちょうどエコーJSONデータがこれを生成します。

"[{\"data_name\" : [[1.02], [3.013], [-24.12], [39]]}, {\"data_name_2\" : -0.32151}, {\"data_name_3\" : [[0.321], [-21.42425], [225125.002]]}, null]" 

それでは、どのように私は、次のことを行うことができますか?

  1. (最初のものを除く)の各フィールドから}, {を削除
  2. (そう\"data_name\""data_name"なり)、引用符の前にすべてのバックスラッシュを削除した文字列
  3. の先頭から最初の"[を削除
  4. 2次元配列の場合は、[[1.02], [2.02]]がになるように、内側の[]シンボルを削除してください[1.02, 2.02]
  5. 1つの数字には彼らの周りので、-0.32151は私が}, null]"に達すると、私は, null]"を削除し、ちょうど最後}を維持したい、最後に
  6. [-0.32151]になります。

私はstrposについて少し理解が、私は正規表現のいくつかのフォームとそれを取り込むことができるかわからない、または私はステップのそれぞれの世話をするために、文字列を使用して手動でループする必要がある場合。誰かがどのように起動するかというアイデアがあれば、私はそれを感謝します。

+1

"私のデータが正しくエンコードされていません"という適切な修正は、エンコードされたテキストの改ざんではなく、データのプリエンコードまたはポストデコードを修正することです。 – Sammitch

+0

これを試してみてください:http://stackoverflow.com/a/8635181/3541922 – MikeVelazco

+1

JSONは標準で、PHPまたはサポートされている言語で読むことができるはずです。両方のコードをチェックしてください。 – MikeVelazco

答えて

0

私はSammitchに同意します。

2.のためのクイックフィックスが残りについてstripslashes

である、あなたはそれを正しくフィルタリングすることができpreg_replaceでパターンを作成することができるが、なぜただpythonの出力を変更することはできませんか?

関連する問題