Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我看到了字符串;urlToImage“;在json中回答,但我的gsonfactory没有解析它!为什么? 解决了的_Java_Android_Json_Gson - Fatal编程技术网

Java 我看到了字符串;urlToImage“;在json中回答,但我的gsonfactory没有解析它!为什么? 解决了的

Java 我看到了字符串;urlToImage“;在json中回答,但我的gsonfactory没有解析它!为什么? 解决了的,java,android,json,gson,Java,Android,Json,Gson,我正在使用改型进行异步调用,当我收到JSON响应时,查看网络日志我看到它包含“urlToImage”带有一些url的字符串,但当我的gsonfactory将其解析为JSON模型时,“urlToImage”总是null 我收到一个带有JSON响应的POJO对象,并将其用作JSON模型,但还没有成功 我试图从该响应中解析另一个字符串以进行测试,除了字符串“publishedAt”和“urlToImage”之外,每个字符串都是平滑的。它们总是空的 在JSON中,回答“urlToImage”不为空:

我正在使用改型进行异步调用,当我收到JSON响应时,查看网络日志我看到它包含“urlToImage”带有一些url的字符串,但当我的gsonfactory将其解析为JSON模型时,“urlToImage”总是null

我收到一个带有JSON响应的POJO对象,并将其用作JSON模型,但还没有成功

我试图从该响应中解析另一个字符串以进行测试,除了字符串“publishedAt”和“urlToImage”之外,每个字符串都是平滑的。它们总是空的


在JSON中,回答“urlToImage”不为空:


我的JSON模型:

public class Article {

    private Source source;
    private String title;
    private String description;
    private String urlToImage;

----< constructor, getters and setters >----

  private class Source {

        private String name;

----< constructor, getters and setters >----
  }
}

我的GSON工厂:


更新1 正如@mcu皇帝所注意到的,在我的gsonbuilder中设置了
FieldNamingPolicy
。全部:

gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_,带下划线)
因此:

  • 我试图将urlToImage重命名为url_to_image-没有效果,仍然为空

  • 我试图设置
    FieldNamingPolicy.IDENITY
    docs:“使用 此Gson命名策略将确保字段名为 未更改。“-无效,仍然无效

  • 我删除了FieldNamingPolicy-无效

  • 我删除了GSON builder,现在我只是通过了GSON工厂
    .addConverterFactory(GsonConverterFactory.create())
    正在创建改装对象-无效果,仍然为空


此外,我在改造的github问题上发现了这一点,2015年9月,开发者将这种行为称为“bug”。我不知道是我还是什么


更新2
在我的依赖项中,我只有
'com.squareup.2:converter gson:2.5.0'
,但当我添加
'com.google.code.gson:gson:2.8.5'
时,urlToImage的值与null不同!哇

这是因为您明确告诉Gson这样做

gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES);
希望您的字段
urlToImage
映射到json键
url\u to\u image


您可以看到JSON示例的属性已经用camelCase编写。这些字段等于您在模型中定义的字段。如果删除字段命名策略,它将正常工作。

我们可以看到调用Gson库的代码吗?这可能是因为字段名包含大写字符。@mcepender添加到了endYes!因为每个字段都是一个单词,所以没有下划线。昨天晚上我注意到了gson政策,不知怎么的,它没有成功地建立起来,但现在我看到了。非常感谢)同样的事情也发生在了PublishDAT上,这就是我注意到的原因:-)
    @Provides
    @Singleton
    Gson provideGson() {
        GsonBuilder gsonBuilder = new GsonBuilder();
        gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES);
        return gsonBuilder.create();
    }
gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES);