![](/img/trans.png)
[英]Tweet with Spring-Social-Twitter Api inReplyToStatus doesn't work
[英]In Spring Social Tweeter, how does JSON become a Tweet, and how does RestTemplate.getObject<T> work?
大家
在Spring Social Twitter中,我們使用RestTemplate.getObject<T>()
從REST端點檢索和反序列化數據。 它能完成工作,而且非常整潔! 但是它是怎么做到的呢?
如何將JSON(源1)轉換為.JAVA(源2)。
當我注意到“坐標”位於TweetData內部而不是作為Tweet的屬性時,出現了此問題。
我在這里先向您的幫助表示感謝!
編輯我找到了進行反序列化的類和答案,並通過@Sotirios Delimanolis先生的提示將其發布。
Spring使用HttpMessageConverter
實例的集合將請求或響應正文內容轉換為自定義類型。 對於JSON內容類型,Spring具有MappingJackson2HttpMessageConverter
和GsonHttpMessageConverter
(取決於您的版本)。
假設您要使用RestTemplate#getForObject
, RestTemplate#getForObject
目標類型指定為Class
參數。 Spring會將目標類型傳遞給適當的轉換器並執行反序列化。
在@Sotirios Delimanolis之后,我四處尋找HttpMessageConverter
工作方式。 實際上, Spring Social Twitter api中的大多數反序列化都使用HttpMessageConverter
。
但是,對於Tweets(JSON與Tweet.java結構有很大不同),我發現我們使用了一個名為TweetDeserializer.java
的對象(自我解釋,對嗎?)
因此,請求者位於:
Craig Walls在文件docs中對其進行了描述:
自定義傑克遜反序列化器的推文。 推文不能像其他Twitter模型對象那樣簡單地映射,因為JSON結構在搜索API和時間軸API之間有所不同。 該解串器確定正在使用的結構並從中創建推文。 @作者克雷格·沃爾斯
我很抱歉讓您遇到這個愚蠢的問題,但是我覺得將這個答案放在這里可能會幫助進入Spring開發的人們找到解決之道。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.