次のJSON(無効)を文字列として使用しています。私はそれを解析し、内部の価値を得る必要があります。私はたくさん試しましたが、結果は得られませんでした。文字列をJSONに変換できませんでした。 JSONを有効な文字列に変換し、PHPでJSONを解析します。
$sJson = '{"Place":"MyStore","PurchaseID":"IND.1234-5678-9012-34567","details":"{\"json\":\"{\\\"PurchaseID\\\":\\\"IND.1234-5678-9012-34567\\\",\\\"categoryname\\\":\\\"smartpack\\\",\\\"productname\\\":\\\"bitcoinpack1\\\",\\\"purchaseTime\\\":1504256011148,\\\"purchaseState\\\":\\\"Success\\\",\\\"UniqueToken\\\":\\\"jbbefjifdkpdpajfkomckoof.AO-J1OzEdsZX17M5pAvedDh1Ep_WwlOKamMQN_3O89bRbAPX-uoqPpTJf8EdNcjMhCK1dptGaWReUCSS9JGCJuh6GlAT0l11mkUddo_uJ4YOe8ezYxlmDQ8\\\"}\",\"currentvalue\":\"S270U2J3XF\\/+XnC1ocPp0d\\/Kwf\\/4B\\/\\/tT7urbDn6F+\\/D8j7VD1t8qqwevtKDnAafAtvocPg4Eevkf\\/GZKl1YOgUYyuY63nyekz7GRDuIKVXAZ+iZtPAbwCuwZplUQHaVA\\/EBMjYpPQM0EFtp2WuX\\/Tx9nTnFCtU+gAK4Rg0zLvQNKSJx5WfqhK7wf0wHTTYviTkB\\/pETnkV22oQDIZH9\\/Fy1FXltC7FXHXoMcxtGvkgPSEFOnms4HumjUQ5PtQUbxh\\/oirQeROCAhkO+WKX9WO3bCKjru1uuxspTLCNGJEKAezi2GEBcpFGjq4iS5N7SfO5BOF76\\/joLe3B7OemJNw==\"}"}';
$sJson = json_encode($sJson,JSON_UNESCAPED_SLASHES);
$json_array = (array) json_decode($sJson,true);
$newjson=preg_replace('/.+?({.+}).+/','$1',$json_array);
var_dump($newjson);
exit;
結果$newjson
はJSONオブジェクトとして返していない、それだけで文字列として与えます。
文字列ではなくJSONオブジェクトが必要です。
特定のJSONでは、json
の値は、"
で始まる文字列(有効なJSON内)です。
これを削除する必要があります。
http://benalman.com/news/2010/03/theres-no-suchthing-as-a-json/ – Quentin
なぜあなたはすでにエンコードしているものを 'json_encode()'しますか? 'json_decode()'を意味しないのですか?そして、私はこの関数の引数と結果に異なる変数名を使用します。 –
あなたが持っているものは無効なJSONです... – Salketer