[英]Deserializing of Google's Translate API result in C#
我正在嘗試使用JavaScriptSerializer將Google的Translate API JSON響應反序列化為C#對象。 但是,總是說Type 'TranslateAPI.Models.Translations' is not supported for deserialization of an array.
。 我仔細檢查了是否已經為該對象正確創建了模型,這似乎是正確的。 這是我的模型:
TranslateResult
public TranslateData data { get; set; }
TranslateData
public Translations translations { get; set; }
Translations
public TranslatedText[] translatedText { get; set; } // I have also tried List<TranslatedText> which also doesn't work
TranslatedText
public string translatedText { get; set; }
從Google返回的json看起來像這樣:
{data: {
translations: [
{translatedText: "Hello world"}
]
}
知道我在做什么錯嗎?
謝謝
PS。 值得一提的是,我正在對它進行反序列化: TranslateResult translateResult = js.Deserialize <TranslateResult>(json);
我懷疑您根本不需要Translations
類。 你有:
data
屬性的對象 data
屬性值是一個包含translations
屬性的對象 translations
屬性值是一個數組 translatedText
屬性的對象 在我看來,您的TranslateData
類應該是:
TranslateData
public Translation[] translations { get; set; }
Translation // Renamed from TranslatedText
public string translatedText { get; set }
(我還建議您重命名屬性以遵循常規的C#命名約定,然后根據需要應用屬性來幫助JSON轉換。我已經有一段時間沒有使用JavaScriptSerializer
了,但是我敢肯定這是可行的。您不需要在C#代碼中使用討厭的屬性名稱。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.