Как получить данные в формате json с translate.googleapis.com?

Я пытаюсь использовать API Google Trnslation для перевода некоторых текстов с английского на голландский. У меня есть следующий код: —

$text = urlencode($text);
$from_lan = 'en';
$to_lan = 'nl';
$url = "https://translate.googleapis.com/translate_a/single?client=p&sl=".$from_lan."&tl=".$to_lan."&dt=t&q=".$text;
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true);
$content = curl_exec($ch);
print_r($content);

Данные, которые я получаю:

[[["uitzicht","view",,,2]],,"en"]

Это не массив или данные JSON. Это строка. Как я могу получить данные в формате JSON

0

Решение

Удалите повторяющиеся запятые с помощью регулярных выражений. Затем закодируйте / проанализируйте в json. Это работает в js, но не проверено в php.

Вот версии js / jquery для сравнения:

// error
$.ajax({
url: "https://translate.googleapis.com/translate_a/single?client=gtx&sl=en&tl=nl&dt=t&q=view",
dataType: "text"})
.done(function(data) {
console.log(JSON.parse(data)[0][0][0]);
});

// works (replaces duplicate comma's with single ones)
$.ajax({
url: "https://translate.googleapis.com/translate_a/single?client=gtx&sl=en&tl=nl&dt=t&q=view",
dataType: "text"})
.done(function(data) {
console.log(JSON.parse(data.replace(/,+/g, ","))[0][0][0]);
});
0

Другие решения

Использовать Json Decode (принимает строку в кодировке JSON и преобразует ее в переменную PHP)

var_dump(json_decode($content)); //Output is object variable
var_dump(json_decode($content, true)); //Output is array variable
0

По вопросам рекламы [email protected]