2017-07-14 20 views
-1

このJSONデータは 'JSON.stringify()。replace()'の対象となり、その後バックエンドのPHPでjson_decode()を試しています。しかし、それは動作しません。php json_decode()はエンコードされたJSON文字列では動作しません。デコードされた値がNULLです

<?php 
     $a="{\\\"data\\\":{\\\"lab\\\":[\\\"a\\\",\\\"b\\\",\\\"c\\\",\\\"4\\\",\\\"5\\\",\\\"6\\\",\\\"7\\\",\\\"8\\\",\\\"9\\\",\\\"dd\\\"],\\\"stats\\\":{\\\"t1\\\":{\\\"name\\\":\\\"Tier Creation\\\",\\\"t_name\\\":\\\"dd\\\",\\\"t_desc\\\":\\\"dd\\\"},\\\"t_up\\\":{\\\"d_name\\\":\\\"T Up\\\",\\\"id\\\":4,\\\"up_t\\\":\\\"Li cases\\\",\\\"up_val\\\":[\\\"1\\\",\\\"2\\\",\\\"3\\\",\\\"4\\\",\\\"5\\\",\\\"6\\\",\\\"7\\\",\\\"8\\\",9],\\\"sm_temp\\\":[\\\"\\\",\\\"\\\",\\\"\\\",\\\"\\\",\\\"\\\",\\\"\\\",\\\"\\\",\\\"\\\",\\\"\\\"],\\\"ms_end_id\\\":[\\\"\\\",\\\"\\\",\\\"\\\",\\\"\\\",\\\"\\\",\\\"\\\",\\\"\\\",\\\"\\\",\\\"\\\"],\\\"short_check\\\":[\\\"0\\\",\\\"0\\\",\\\"0\\\",\\\"0\\\",\\\"0\\\",\\\"0\\\",\\\"0\\\",\\\"0\\\",\\\"0\\\"],\\\"e_sub\\\":[\\\"\\\",\\\"\\\",\\\"\\\",\\\"\\\",\\\"\\\",\\\"test\\\",\\\"\\\",\\\"sda\\\",\\\"\\\"],\\\"e_dy\\\":[\\\"\\\",\\\"\\\",\\\"\\\",\\\"\\\",\\\"\\\",\\\"<p>&lt;title&gt;&lt;\\/title&gt;\\\\\\\\n&lt;center&gt;&lt;img src=\\\\\\\\&quot;clouds.jpg\\\\\\\\&quot;\\/&gt;&lt;\\/center&gt;\\\\\\\\n\\\\\\\\n&lt;hr\\/&gt;\\\\\\\\n&lt;p&gt;&lt;a href=\\\\\\\\&quot;http:\\/\\/somegreatsite.com\\\\\\\\&quot;&gt;LinkName&lt;\\/a&gt;isalinktoanotherniftysite&lt;\\/p&gt;\\\\\\\\n\\\\\\\\n&lt;h1&gt;ThisisaHeader&lt;\\/h1&gt;\\\\\\\\n\\\\\\\\n&lt;h2&gt;ThisisaMediumHeader&lt;\\/h2&gt;\\\\\\\\n\\\\\\\\n&lt;p&gt;Sendmemailat&lt;a href=\\\\\\\\&quot;mailto:[email protected]\\\\\\\\&quot;&gt;[email protected]&lt;\\/a&gt;.&lt;\\/p&gt;\\\\\\\\n\\\\\\\\n&lt;p&gt;Thisisanewparagraph!&lt;\\/p&gt;\\\\\\\\n\\\\\\\\n&lt;p&gt;&lt;strong&gt;Thisisanewparagraph!&lt;\\/strong&gt;&lt;br\\/&gt;\\\\\\\\n&lt;strong&gt;&lt;em&gt;Thisisanewsentencewithoutaparagraphbreak,inbolditalics.&lt;\\/em&gt;&lt;\\/strong&gt;&lt;\\/p&gt;\\\\\\\\n\\\\\\\\n&lt;hr\\/&gt;\\\\n\\\",\\\"\\\",\\\"<p>upgraded from {{initialname}} to {{name}} on&nbsp; {{s_date}}\\\\n\\\\n<p>\\\\\\\\r\\\\\\\\n&quot;,&quot;\\\\n\\\\n<p style=\\\"margin-left: 40px;\\\\\\\">{{name}} reached from{{initial_name}}on expiry date {{expiry_date}} name is {{full_name}}, first&nbsp; {{first_name}} and last {{last_name}}\\\\n\\\\n<p>\\\\\\\\r\\\\\\\\n&quot;,&quot;\\\\n\\\\n<p>{{name}} from {{initial_name}} expires on {{expiry_date}} {{full_name}} and first {{first_name}} and last name {{last_name}}\\\\n\\\\n<p>\\\\\\\\r\\\\\\\\n\\\\n\\\\n<p>hi hello\\\\n\\\",\\\"\\\"],\\\"t_id\\\":[\\\"\\\",\\\"\\\",\\\"\\\",\\\"\\\",\\\"\\\",\\\"\\\",\\\"\\\",\\\"\\\",\\\"\\\"],\\\"acc_id\\\":[\\\"\\\",\\\"\\\",\\\"\\\",\\\"\\\",\\\"\\\",\\\"\\\",\\\"\\\",\\\"\\\",\\\"\\\"]},\\\"aton\\\":{\\\"dime\\\":\\\"Po lcon\\\",\\\"grp\\\":{\\\"PRO\\\":{\\\"name\\\":\\\"PRO\\\",\\\"id\\\":2,\\\"a_type\\\":\\\"In terms of gg\\\",\\\"all\\\":[\\\"10.0\\\",\\\"20.0\\\",\\\"20.0\\\",\\\"100\\\",\\\"100\\\",\\\"100\\\",\\\"110\\\",\\\"100\\\",\\\"100\\\",100]},\\\"DEFAULT\\\":{\\\"name\\\":\\\"DEFAULT_ALL\\\",\\\"id\\\":3,\\\"al_type\\\":\\\"rated - In terms of gg\\\",\\\"alloc_val\\\":[\\\"100\\\",\\\"100\\\",\\\"100\\\",\\\"100\\\",\\\"100\\\",\\\"100\\\",\\\"120\\\",\\\"100\\\",\\\"100\\\",100]}}},\\\"finalize\\\":{\\\"lay_nam\\\":\\\"Fin\\\"}},\\\"curr_sym\\\":\\\"\\\"},\\\"ash_age\\\":\\\"\\\",\\\"log\\\":[]}"; 




     $b = array(); 
     $b=json_decode($a,"\0") or die("json decode unsuccessful\n"); 

     echo ($b==NULL); 

     echo print_r($b,true); 

?> 

出力: JSONデコード失敗し

+2

なぜスラッシュが非常に多いのですか?それらは必要ありません – GrumpyCrouton

+1

エスケープされた "と\文字が混乱しているので動作していません。有効なjson –

+0

が実際には2つのエスケープ・スラッシュを持っていませんでした.Json内部のhtmlの構文エラーを避けるためです私は再び安全なデコードを保証するためにそれをエンコードしました。間違ったhtmlはjsonのデコードを混乱させるべきではありません。 –

答えて

0

$ aが有効なJSONが含まれていませんここ

はプログラムです。これらのスラッシュは完全に間違っています。あなたがエスケープする必要があるのは、「HTML文字列の中にあり、JSONの代わりに」(つまり$ a = '{.....}';)です。

関連する問題