Php 如何将json web令牌转换为json对象?

Php 如何将json web令牌转换为json对象?,php,jwt,Php,Jwt,我正在尝试将我的JSON Web令牌解码为JSON解析版本 但它所做的只是在字符串中添加斜杠 这是我测试它的代码: <?php $string = base64_decode("eyJpZCI6IDYsICJ1c2VybmFtZSI6IkNsZW1lbnMiLCAiYXV0aGx2bCI6NX0"); $jsonObject = json_encode($string, JSON_UNESCAPED_SLASHES); echo $jsonObject; ?> 但它改变了这

我正在尝试将我的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}"
有人能告诉我我做错了什么吗?我已经尝试过很多类似的方法:


我认为你犯了一个小错误

base64编码的数据已经是一个JSONString,因此要在PHP中使用它,您需要
json\u decode()
it而不是
json\u encode()
it

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

print_r($jsonObject);
回波结果

{"id": 6, "username":"Clemens", "authlvl":5}
print\u r()的结果

或者只需回显
$string

$string = base64_decode("eyJpZCI6IDYsICJ1c2VybmFtZSI6IkNsZW1lbnMiLCAiYXV0aGx2bCI6NX0");
echo $string.PHP_EOL;
结果为有效的JSON

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

您想要的版本不是有效的JSON(您只能拥有具有命名属性的对象),此
{“id”:6,“username”:“Clemens”,“authlvl”:5}
是正确的JSON。为了简单起见,感谢您提供此信息!
$string = base64_decode("eyJpZCI6IDYsICJ1c2VybmFtZSI6IkNsZW1lbnMiLCAiYXV0aGx2bCI6NX0");
echo $string.PHP_EOL;
{"id": 6, "username":"Clemens", "authlvl":5}