Я хочу декодировать эти данные в объект php, но это не работает. Если я запустил код, он ничего не даст.
$Data = "{"3":false,"5":false,"6":true}"
$obj = json_decode($Data, true);
echo $obj["3"];
echo $obj["5"];
Посмотрите на приведенный ниже код.
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://demo.thingsboard.io:443/api/plugins/rpc/twoway/67cadda0-b8c0-11e8-a04e-eb5f6cd0fada");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"method\": \"setGpioStatus\", \"params\": {\"pin\": \"".$PIN_NUMBER."\", \"enabled\": \"".$PIN_STATUS."\"}, \"timeout\": \"500\"}");
curl_setopt($ch, CURLOPT_POST, 1);
$headers = array();
$headers[] = "Content-Type: application/json";
$headers[] = "Accept: */*";
$headers[] = "X-Authorization: Bearer ".$New_JWT_TOKEN."";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$GPIO_RESULT = curl_exec($ch); // curl_exec($ch) gives {"3":false,"5":false,"6":true}
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
$obj = json_decode($GPIO_RESULT, true);
echo $obj["3"]; // output: null
echo $GPIO_RESULT; // output: {"3":false,"5":false,"6":true}
}
Теперь я получаю вывод $GPIO_RESULT, но не вывод $obj["3"] или любое однозначное целое число. Я обнаружил, что в этом формате не принимаются целочисленные значения. Может ли кто-нибудь подсказать мне другой способ преобразования этих данных.
Да, и если вы попытаетесь повторить false, вы ничего не увидите. Вместо этого попробуйте var_dump.
Возможный дубликат В чем разница между строками в одинарных и двойных кавычках в PHP?
Данные просто {"3": false, "5": false, "6": true}. Я получаю это из ответа сервера с помощью команды curl. $ data = curl_exec ($ ch); // вывод curl_exec ($ ch): {"3": false, "5": false, "6": true}
у вас нет ключа "2"; в вашем json, возможно, у вас есть скрытые сообщения об ошибках в php.ini, также вы можете получить последнюю ошибку json с помощью функций json_last_error и json_last_error_msg
Вам, вероятно, следует показать свой код действительный, поскольку он, похоже, не очень хорошо отражает вашу проблему.
По сути, вы делаете echo false;, который не производит никакого вывода. Попробуйте var_dump($obj["3"]);
Спасибо, var_dump () работает, но дает результат в виде логического форматирования. echo var_dump ($ obj ["3"]); // вывод: bool (false) echo $ obj ["6"]; // вывод: 1 эхо $ GPIO_RESULT; // общий вывод: bool (false) 1 {"3": false, "5": false, "6": true} var_dump ($ obj ["3"]) вывод bool (false), но мне нужно только " ложный "вывод
Возможный дубликат PHP - получить bool для эха false, когда false



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Добро пожаловать.
$Data = "{"3":false,"5":false,"6":true}"- недопустимое утверждение. Попробуйте$Data = '{"3":false,"5":false,"6":true}';. Также см. документация о строках.