android 如何在Kotlin中从解码的JWT中获取嵌套的JsonObject?

hivapdat  于 2023-01-24  发布在  Android
关注(0)|答案(1)|浏览(133)

我已经解码了令牌,但无法获取嵌套的JsonObject。我想获取user_metadata:hasura中的id

{
  "exp": 16636813,
  "email": "123@gmail.com",
  "user_metadata": {
   "hasura": {
      "id": "123"
  }
}

我用了几个库,我得到了Option<String>Claim。但是我不能比从**“exp”**中只得到字符串值更进一步。
我已经在这个库(https://github.com/auth0/JWTDecode.Android)中尝试过了,但是得到了空值:

var claim : Claim = jwt.getClaim("user_metadata")
metadata = claim.asObject(UserMetadata::class.java)!!
ybzsozfc

ybzsozfc1#

我的问题是,我试图声明我的对象为UserMetadata类,但实际上它是JsonObject
我用这样的方法解决了我的问题:

var json : JsonObject = jwt.getClaim("user_metadata").asObject(JsonObject::class.java)!!
var gsonn = Gson()
var testModel = gsonn.fromJson(json.toString(),UserMetadata::class.java)
var id : String = testModel.hasura.id

相关问题