2012-02-22 7 views
0

初心者として、私はGoogle transliteratorリターン配列をデシリアライズしようとしました。C#でGoogle TransliterationをデシリアライズするNewtonsoft.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. 

何が間違っている任意のアイデア?

答えて

0

結果は、プレーンオブジェクト({...})ではなくJSONオブジェクト([{...},])の配列です。

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

申し訳ありませんが、働いていない:あなたはこのようにそれを変更した場合

あなたのコードは動作するはずです。エラー:オブジェクト参照がオブジェクトのインスタンスに設定されていません。 – vahid

+0

自分のコードを編集しました。もう一度やり直せますか? (問題が解決しない場合、おそらくデバッグして_which_オブジェクトがヌルであることを伝えます) – Nuffin

+0

申し訳ありませんが、最初の答えはOKでしたが、それは私の間違いでした。 google transliteration APIに代替のオプションがあり、正しいオプションを使用していませんでした。ありがとう。 Uロック。 – vahid

関連する問題