如何将JSON Web令牌转换为JSON对象?

克拉克斯

我正在尝试将JSON Web令牌解码为JSON解析版本,

但它所做的只是在字符串中添加斜线。


这是我正在测试的代码:

<?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

里格斯愚蠢

我认为您在犯一个小错误。

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}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章