2017-01-20 25 views
0

で動作しない:json_decodeこのコードを持つ文字列

$url = 'https://www.xxxxxxx.com/api/v1/phone/?apikey=xxxxxxxxxx&id='.$id; 

$cURL = curl_init(); 

curl_setopt($cURL, CURLOPT_URL, $url); 
curl_setopt($cURL, CURLOPT_HTTPGET, true); 

curl_setopt($cURL, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json', 
    'Accept: application/json' 
)); 
curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true); 
$result = curl_exec($cURL); 

curl_close($cURL); 

    echo $result;  
    var_dump ($result); 
    var_dump(json_decode($result, true)); 

Iを得ること:

{ "電話": "0 811 228 338"}

ストリング(32 ) "{" 電話 ":" X XXX XXX XXX "}"

NULL

ここでjson_decodeが動作しない理由がわかりません。私が得た少しの情報で私に

答えて

1

ソリューションは、UTF-8(SANS応答がUTF-8であるということでしたが、ないよう http://php.net/manual/en/function.json-decode.php

は、いくつかのバリデータでそれを試してみてくださいBOM)。 文字列(U + FEFF)の先頭には目に見えないカクタクトがあることを意味します。

解決策:ありません:あなたの助け

1

を支援するための

おかげで、私はそのJSONの整形の問題と考えています。

<?php 

    $json = '{"foo-bar": 12345}'; 

    $obj = json_decode($json); 
    print $obj->{'foo-bar'}; // 12345 

?> 

JSONの引用符が有効ではありませんこの1つのhttp://jsonlint.com/

+0

ため$result = substr($result, 3);

おかげで彼の元の入力が文字列 '文字列(32) "{" X XXX XXX XXX "" 電話 "}"' だったように見えますJSON – GantTheWanderer

+0

応答いただきありがとうございます。しかし実際には、$結果は{"telephone": "X XXX XXX XXX"} –

+0

あなたがそこにいるNULLです。それは存在しないか、値がNULLのキーがあるべきです。 –

関連する問題