Десериализация транслитерации Google в C # с использованием Newtonsoft.Json - PullRequest
0 голосов
/ 22 февраля 2012

В качестве новичка я попытался десериализовать массив возвращаемых данных Google транслитератором.Это массив JSON, подобный этому:

[{"ew" : "namaste","hws" : ["नमस्ते","नमसते","नमास्ते",]},]

довольно круто!

Это мой класс c #, используемый для десериализации:

   [Serializable]
   public class googleTransliterator  
   {

       [JsonProperty("ew")]
       public String sourceWord { get; set; }

       [JsonProperty("hws")]
       public String[] transliteratedWords { get; set; }

   }

и, наконец,

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));

И вот что я получил:

Cannot create and populate list type GoogleTransliterator.googleTransliterator.

Есть идеи, что не так?

1 Ответ

0 голосов
/ 22 февраля 2012

Результатом является массив объектов JSON ([{...},]) вместо простого объекта ({...}).

Ваш код должен работать, если вы измените его следующим образом:

var gt = ((googleTransliterator[])s.Deserialize(
    new StringReader(streamReader.ReadToEnd()),
    typeof(googleTransliterator[])))[0];
...