2016-12-01 8 views
1

私はUnity(C#)プロジェクトに取り組んでおり、JSONデータをAPIから辞書のリストに変換しようとしています。 UnityのJSONSerializationを使用しようとしていますが、何をすべきかわかりません。JSONを辞書のリストに変換する

ドキュメントでは、次のように述べています。誰かが私にJSONをどのように変換できるか教えてくれるのだろうかと思っていましたか?私はC#とJavascript/Pythonのように使う他の言語では新しく、これは簡単にできますので、簡単に質問して申し訳ありません。

プリミティブ型 や配列など、他の型を直接APIに渡すことは現在サポートされていません。今のところ、あなたは のような型をある種のクラスまたは構造体で囲む必要があります。

https://docs.unity3d.com/Manual/JSONSerialization.html

JSONが返さ辞書のリストに追従しているようであり、そして各辞書は、二つのキー(_idとfirstNameの)を有しています。

[{"_id":"xxx", "firstName":"Brayann"}, {"_id":"yyy", "firstName":"Peter"}] 

答えて

0

は、私の知る限り、あなたが辞書のenumarableとしてデシリアライズすることはできませんが、あなたはより合理的である。この目的のためにクラスを作成することができます知っている:

public class SomeDataType 
{ 
    public string _id { get; set; } 
    public string firstName { get; set; } 
} 

は、その後、あなたは List<SomeDataType>としてデシリアライズすることができます。

辞書が本当に必要な場合でも、クラスにToDictionaryメソッドを追加できます。

3

あなたがDeserializejsonになるオブジェクトを作成します。それ以降はToDictionaryに電話してください。

全例:dotNetFiddle

public static void Main(string[] args) 
{ 
    string json = @"[{ ""_id"":""xxx"", ""firstName"":""Brayann""}, { ""_id"":""yyy"", ""firstName"":""Peter""}]"; 

    var result = JsonConvert.DeserializeObject<List<RootListObject>>(json) 
          .ToDictionary(x=> x.id, y=> y.firstName); 
} 

public class RootListObject 
{ 
    [JsonProperty(PropertyName ="_id")] 
    public string id { get; set; } 
    public string firstName { get; set; } 
} 
関連する問題