Android JsonObject 解析带双引号的字符串

Android JsonObject parsing string with double quotes

我正在使用 Json 对象解析来自 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..."
}

解析此字符串的正确方法是什么,这样我就不会用双引号引起来?

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

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

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

我相信您正在使用 GSON 库。不需要 trim 得出你的结果,gson 提供了方法。试试这个

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

参考 Gson API 文档:JsonElement