JSON encode "true" zamiast true |
JSON encode "true" zamiast true |
9.12.2022, 18:15:55
Post
#1
|
|
Grupa: Zarejestrowani Postów: 140 Pomógł: 0 Dołączył: 14.01.2017 Ostrzeżenie: (0%) |
Hej
Czy ktoś może mi pomóc dlaczego w wyniku json_encode dosateje
zamiast
dobra sorry już znalazłem odpowiedź wystarczyło dodać do zmiennej (bool) Nie mniej to nie rozwiązuje mojego problemu, ponieważ dla wartości innych niż true/false również konwertuje mi do bool a tak nie ma być |
|
|
9.12.2022, 18:20:49
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 783 Pomógł: 1826 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Skoro spodziewasz się, że zmienna będzie miała wartość boolean, to zrób po prostu:
Kod zmienna = zmienna == 'true';
-------------------- |
|
|
9.12.2022, 18:59:34
Post
#3
|
|
Grupa: Zarejestrowani Postów: 140 Pomógł: 0 Dołączył: 14.01.2017 Ostrzeżenie: (0%) |
No właśnie nie wiem tego, bo wysyłam setki zmiennych POST, jedne są bool, inne tekst a inne liczbowe. Nie wiem jak to ogarnąć.
Zrobiłem coś takiego
Czy tak może być? Niestety to nie działa |
|
|
9.12.2022, 19:14:38
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 783 Pomógł: 1826 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
A co niby dzieje się w linii 2?
-------------------- |
|
|
9.12.2022, 21:53:23
Post
#5
|
|
Grupa: Zarejestrowani Postów: 140 Pomógł: 0 Dołączył: 14.01.2017 Ostrzeżenie: (0%) |
Dobra mój błą
Tak miało być
teraz jest OK Zmęczenie bierze Trochę pomęczyłem i wyszło coś takiego
Sugestie mile widziane, jeszcze dane w postaci tablic, może dam radę Ten post edytował topcio 9.12.2022, 21:55:29 |
|
|
10.12.2022, 13:27:03
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 863 Pomógł: 228 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) |
Odpowiadając na pierwszy post, skoro używasz json_encode, to przy
[php]$foo = ['a'=>1, 'b'=>true, 'c'=>false, 'd' => new stdClass, 'e'=>'stop']; $json = json_encode($foo); print($json); var_dump(json_decode($json, true));/php] to wynikiem są: Kod {"a":1,"b":true,"c":false,"d":{},"e":"stop"} array(5) { ["a"]=> int(1) ["b"]=> bool(true) ["c"]=> bool(false) ["d"]=> array(0) { } ["e"]=> string(4) "stop" } klucz o wartości b i c podają wartości bool, a nie string. Do sprawdzenia wartości przychodzących z _POST lub _GET lepiej użyć: filter_var($foo['b'], FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE) Szczególnie, że rozpatruje także pozytywnie wartości 'on', '1' jako true, a czasem przy wysyłaniu do skryptu wartości przez JS mogą być wysłane właśnie takie wartości dla prawdy lub fałszy np. z formularza radio lub checkbox. |
|
|
Wersja Lo-Fi | Aktualny czas: 26.09.2024 - 07:53 |