2016-06-17 11 views
0

私はjsonの文字列を下に住んでいるが、私は配列を変換しようとするが、私は成功していない誰も私を助けてください、進歩ありがとうございます。jsonデータをPHPの配列に変換するには?

$array = json_decode(unserialize($string), true); 

しかしを、また、あなたのデータが破損していると思われ、unserializeは、いくつかのPHPで正しく動作しない理由です:

Example 1 : s:59:"[{"item_id":"UTILITY CON CERNIERA","qty":1,"points":"110"}]"; 

Example 1 : s:109:"[{"item_id":"UTILITY CON CERNIERA","qty":1,"points":"110"},{"item_id":"PESA VALIGIA","qty":1,"points":"120"}]"; 
+0

何を試しましたか?そのコードをここに入れてください。 –

+1

これはJSONではありません。これは 'serialize()' d JSON文字列のようです。 – deceze

+0

これは何を出力していますか? JSONがありますが、それは何かの先頭に 'serialize()' d文字列の中にあります。 –

答えて

0

データはserializedjson encodedです。だから、使用する必要があります: -

json_decodeunserializeと一緒に以下のように: -

<?php 

$data = 's:59:"[{"item_id":"UTILITY CON CERNIERA","qty":1,"points":"110"}]"'; 
print_r(json_decode(unserialize($data),true)); 
?> 

そして

<?php 

$data = 's:109:"[{"item_id":"UTILITY CON CERNIERA","qty":1,"points":"110"},{"item_id":"PESA VALIGIA","qty":1,"points":"120"}]"'; 
print_r(json_decode(unserialize($data),true)); 
?> 

https://eval.in/590757そして、それ以上の基準についてはhttps://eval.in/590758

: -

http://php.net/manual/en/function.json-decode.php

http://php.net/manual/en/function.unserialize.php

3

それはあなたがシリアル化JSONを持っているので、これを試してみてください、と思われますバージョン。これがあなたのケースである場合、この質問では、これを修正する方法を見つけることができます:unserialize() [function.unserialize]: Error at offset。これらは、シリアライズされた文字列がエンコードされたJSONでないよう

-1

使用json_decode(unserialize($string));は、配列を取得するために...そうです。関数内

+0

'unserialize'は配列ではなく文字列を取得します。 – deceze

+0

はい@Gino Paneは正しいですが、jsonでエンコードされた文字列と同様にシリアル化されていますが、最初にシリアル化を解除する必要があります –

2

使用unserializejson_decode

json_decode(unserialize($string),true); // pass second argument true 

trueの場合、オブジェクトが連想配列に変換されます返されました。

+1

これは要求通りに配列を返します。 – Progrock

関連する問題