Как я могу преобразовать веб-токен json в объект json? - PullRequest
0 голосов
/ 31 октября 2019

Я пытаюсь декодировать мой JSON Web Token в версию JSON Parsed,

, но все, что он делает, это добавляет косую черту к строке.


Это код, который яЯ проверяю это для:

<?php

$string = base64_decode("eyJpZCI6IDYsICJ1c2VybmFtZSI6IkNsZW1lbnMiLCAiYXV0aGx2bCI6NX0");

$jsonObject = json_encode($string, JSON_UNESCAPED_SLASHES);

echo $jsonObject;
?>

Данные, которые я хочу получить, должны быть такими:

[       
'id': 6,
'username': Clemens,
'authlvl': 5
]

Но это меняет это на:

{"id": 6, "username":"Clemens", "authlvl":5}

Или это:

"{\"id\": 6, \"username\":\"Clemens\", \"authlvl\":5}"

Может кто-нибудь сказать мне, что я делаю неправильно, я уже попробовал много методов, подобных этим:

Почему json_encode добавляет обратную косую черту?

https://www.youtube.com/watch?v=SKswJH7_plQ

1 Ответ

0 голосов
/ 31 октября 2019

Я думаю, что вы делаете небольшую ошибку.

Данные, закодированные в base64, уже являются JSONString, поэтому для использования их в PHP вам нужно json_decode() это не json_encode() это

$string = base64_decode("eyJpZCI6IDYsICJ1c2VybmFtZSI6IkNsZW1lbnMiLCAiYXV0aGx2bCI6NX0");
echo $string.PHP_EOL;
$jsonObject = json_decode($string);

print_r($jsonObject);

РЕЗУЛЬТАТ эха

{"id": 6, "username":"Clemens", "authlvl":5}

РЕЗУЛЬТАТ print_r()

stdClass Object
(
    [id] => 6
    [username] => Clemens
    [authlvl] => 5
)

В качестве альтернативы Просто эхо $string

$string = base64_decode("eyJpZCI6IDYsICJ1c2VybmFtZSI6IkNsZW1lbnMiLCAiYXV0aGx2bCI6NX0");
echo $string.PHP_EOL;

РЕЗУЛЬТАТ, действительный JSON

{"id": 6, "username":"Clemens", "authlvl":5}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...