Deserializzazione della traslitterazione di Google in C # utilizzando Newtonsoft.Json

StackOverflow https://stackoverflow.com/questions/9395628

  •  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?

È stato utile?

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
scroll top