Я пытаюсь быть прокси, но получаю эту ошибку:
Catchable fatal error: Object of class stdClass could not be converted to string in C:\wamp64\www\float\form.php on line 7
мой form.php
<?php
header("Content-Type: application/json; charset=UTF-8");
$file = file_get_contents("https://lichess.org/api/user/$_POST[name]");
$json = json_decode($file);
echo $json;
?>
мой index.html
<form action = "form" method = "post">
<p>Username <input type = "text" name = "name" /></p>
<p><input type = "submit" /></p>
</form>
Когда я отключу $json = json_decode($file);, я могу получить полный вывод JSON без ошибок.
Запрошенный JSON отправляет мне много значений, я хочу показать только некоторые из них. @tkausl
$_POST[name] <---- выглядит неправильно, забыли одинарные кавычки вокруг name?
У меня такая же ошибка ..
используйте кодировку $json = json_encode($json) после декодирования
Тогда какой смысл кодировать @ TigerTV.ru
@ 3mirhan: возвращаемый объект json_decode, возвращаемая строка json_encode. Вы сказали, что вам нужно изменить вывод, изменить объект после декодирования, а затем выполнить вывод.






Вы получили ошибку, потому что объект, возвращаемый функцией json_encode, не имеет функции __toString для представления объекта в виде строки:
Итак, если вы не хотите получать полный вывод https://lichess.org/api/user/$_POST[name]
вы должны изменить объект, возвращаемый функцией json_encode, а затем выполнить json_decode, который возвращает строку json.
Также вы можете добавить к объекту __toString на лету (работает только для php> 5.2):
$json = json_decode($file);
$json->__toString = function () { return "a presentation of the object"; };
echo $json
Также вам нужно изменить строку:
$file = file_get_contents("https://lichess.org/api/user/$_POST[name]");
на
$file = file_get_contents('https://lichess.org/api/user/'+$_POST['name']);
Я получил это при кодировании данных XML, где пустые элементы были представлены как {} (объект). Решил эту проблему, заменив {} на "" перед возвратом:
return str_replace(': {}',': ""',json_encode($data, JSON_PRETTY_PRINT));
Почему у вас
json_decodeрезультат?