【问题标题】:Android JsonObject parsing string with double quotesAndroid JsonObject 解析带双引号的字符串
【发布时间】:2015-06-10 03:42:56
【问题描述】:

我使用 JsonObject 解析来自 API 的响应,问题是生成的字符串有双引号,如何获取不带引号的字符串?

                JsonElement jelement = new JsonParser().parse(response);
                JsonObject jobject = jelement.getAsJsonObject();
                String authorization = jobject.get("authorization").toString();

                Log.d("mensa","parseado jwt :"+authorization);

所以我的回复看起来像......

parseado jwt :"eyJ0eXAiOiJKV1QiLCJhbGciO..."

实际的 Json 响应

{
    "authorization": "eyJ0eXAiOiJKV1..."
}

什么是解析这个字符串的正确方法,所以我不把它用双引号括起来?

【问题讨论】:

  • 你的 json 看起来不错。

标签: android jsonobject


【解决方案1】:

我相信您正在使用 GSON 库。无需修剪您的结果,gson 提供了方法。试试这个

 String authorization = jobject.get("authorization").getAsString();

参考 Gson API 文档:JsonElement

【讨论】:

    【解决方案2】:

    您从 Json 获取对象,然后转换为字符串。 jobject.get("authorization").toString(); 尝试获取字符串。

    String authorization = jobject.getString("authorization");
    

    【讨论】:

      【解决方案3】:

      去掉引号:authorization = authorization.substring(1, authorization.length() - 1) 编辑:您实际上应该使用getString() 方法,因为它会将实际内容作为字符串返回,但是,上述方法仍然可以作为一种快速解决方法。

      【讨论】:

      • 不需要去掉引号。 gson 库提供了获取实际值的方法
      • @skadoosh 应该是公认的答案!!这是一个糟糕的实现
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-24
      • 1970-01-01
      • 2020-03-17
      • 1970-01-01
      • 1970-01-01
      • 2017-08-21
      • 1970-01-01
      相关资源
      最近更新 更多