Deserializzazione della traslitterazione di Google in C # utilizzando Newtonsoft.Json
-
29-10-2019 - |
Domanda
Da principiante ho provato a deserializzare l'array di ritorno di Google Transliterator.È un array JSON come questo:
[{"ew" : "namaste","hws" : ["नमस्ते","नमसते","नमास्ते",]},]
davvero fantastico!
Questa è la mia classe c # usata per la deserializzazione:
[Serializable]
public class googleTransliterator
{
[JsonProperty("ew")]
public String sourceWord { get; set; }
[JsonProperty("hws")]
public String[] transliteratedWords { get; set; }
}
e infine:
using Newtonsoft.Json;
...
...
// return value from google transliteration API is in streamReader
var s = new JsonSerializer();
var gt = (googleTransliterator) s.Deserialize( new StringReader( streamReader.ReadToEnd()), typeof( googleTransliterator));
E quello che ho ottenuto è:
Cannot create and populate list type GoogleTransliterator.googleTransliterator.
Qualche idea su cosa sia sbagliato?
Soluzione
Il risultato è un array di oggetti JSON ([{...},]
) invece di un semplice oggetto ({...}
).
Il tuo codice dovrebbe funzionare se lo modifichi in questo modo:
var gt = ((googleTransliterator[])s.Deserialize(
new StringReader(streamReader.ReadToEnd()),
typeof(googleTransliterator[])))[0];
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow