Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.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 在SpringSocialTweeer中,JSON是如何成为Tweet的,RestTemplate.getObject<;T>;工作_Java_Spring_Rest_Spring Social Twitter - Fatal编程技术网

Java 在SpringSocialTweeer中,JSON是如何成为Tweet的,RestTemplate.getObject<;T>;工作

Java 在SpringSocialTweeer中,JSON是如何成为Tweet的,RestTemplate.getObject<;T>;工作,java,spring,rest,spring-social-twitter,Java,Spring,Rest,Spring Social Twitter,大家好 在SpringSocialTwitter中,我们使用RestTemplate.getObject()从REST端点检索和反序列化数据。它做它的工作,它是非常整洁!但是它是如何做到的呢 如何将JSON(源代码1)转换为.JAVA(源代码2) 资料来源1: 资料来源2: 当我注意到“坐标”在TweetData中,而不是作为Tweet的属性时,这个问题就出现了 提前谢谢你的帮助 编辑 我找到了进行反序列化的类和答案,并在@Sotirios Delimanolis先生的提示下发布了它。Spr

大家好

在SpringSocialTwitter中,我们使用
RestTemplate.getObject()
从REST端点检索和反序列化数据。它做它的工作,它是非常整洁!但是它是如何做到的呢

如何将JSON(源代码1)转换为.JAVA(源代码2)

  • 资料来源1:
  • 资料来源2:
当我注意到“坐标”在TweetData中,而不是作为Tweet的属性时,这个问题就出现了

提前谢谢你的帮助

编辑
我找到了进行反序列化的类和答案,并在@Sotirios Delimanolis先生的提示下发布了它。

Spring使用实例集合将请求或响应正文内容转换为自定义类型。对于JSON内容类型,Spring具有和(取决于您的版本)


假设您的意思是,将目标类型指定为
Class
参数。Spring将把该目标类型传递给适当的转换器并执行反序列化。

在@Sotirios Delimanolis之后,我四处搜索,以了解
HttpMessageConverter
是如何工作的。事实上,Spring社交Twitter api中的大多数反序列化都使用了HttpMessageConverter

然而,对于Tweet(其JSON与Tweet.java结构有很大不同),我发现我们使用了一个名为
TweetDeserializer.java
(自我解释,对吧?)

因此,答案就在这里:

Craig Walls在文件文档中对其进行了描述:

自定义Jackson推文反序列化器。推文不能简单地映射 与其他Twitter模型对象一样,因为JSON结构不同 在搜索API和时间线API之间。这个反序列化程序 确定正在使用的结构并从中创建tweet。 @作者克雷格·沃尔斯


我很抱歉用这个愚蠢的问题来打扰你们,但我觉得把这个答案推到这里可能有助于人们在春季开发中找到出路。

Hm,非常感谢@sotirios delimanolis!我会到处挖掘并检查它。