java - 从 json 对象获取字符串不起作用

标签 java json gson

我正在使用 gson 库从 http 请求中获取 json。 一切正常,除了我比较从请求中收到的字符串的部分。即使字符串完全相同,由于某种原因 string.equals 方法也会失败。作为输出,它总是打印不同的日期

这种行为的原因是什么?我在这里缺少什么?

 BufferedReader br;
    try{
        String url = "http://date.jsontest.com/";
        URL request_url = new URL(url);
        HttpURLConnection conn = (HttpURLConnection)request_url.openConnection();
        conn.setRequestMethod("GET");

        if (200 == conn.getResponseCode()){
            br = new BufferedReader(new InputStreamReader((conn.getInputStream())));

            String jsonLine = "";
            String line ;
            while ((line = br.readLine()) != null) {
                jsonLine += line;
            }

            JsonElement jelement = new JsonParser().parse(jsonLine);
            JsonObject  jobject = jelement.getAsJsonObject();

            try{
                String result = jobject.get("date").toString();
                System.out.println("res: " + result);

                if(result.equals("05-29-2017"))
                    System.out.println("Same date");
                else
                    System.out.println("different date");
            }
            catch (NullPointerException ex){ }
        }
    }
    catch (JsonSyntaxException ex){} 
    catch (IOException ex) {}

最佳答案

String result = jobject.get("date").toString();

以上行返回 date 的字符串表示形式,即用引号引起来:"05-29-2017" 这就是 equals 的原因方法返回 false("\"05-29-2017\"".equals("05-29-2017") 将为 false由于开始和结束的双引号)

如果你想要实际的值,你需要使用 getAsString 方法,例如以下应该有效:

String result = jobject.get("date").getAsString();
if(result.equals("05-29-2017"))
    System.out.println("Same date");
else
    System.out.println("different date");

关于java - 从 json 对象获取字符串不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44246568/

相关文章:

ruby-on-rails - 在 Controller 中渲染 JSON

java - 使用 Gson 的序列化对象引用

java - 将 String 转换为 double 时 GSON 中的 NumberFormatException

Java Gson 解析未正确反序列化

java - 使用卡片布局更改面板

java - Jackson:仅从接口(interface)导出 setter/getter

java - 使用什么算法/方法来采用蛮力方法?

java - 解析 Rest API 响应

java - 无法使用 geoTools 获取 FeaturesCollection 中的内容

java - Google Translator API 和一个词的多个翻译