2017-11-26 6 views
1

は私が持っているこのJSONストリング]Json Deserializeのための列挙型コンバータの使用方法?

string [email protected]"['Apple','Mango','Orange']"; 

I以下enum-

public enum Fruits 
{ 
    Apple=1, 
    Mango=2, 
    Orange=3 
} 

が、私はそのようなことは、列挙型の対応する配列を与えることをデシリアライズする必要があります。

int[] result= JsonConvert.Derserialize<int[]>(json)// I want results as [1,2,3] 

助けてください。事前に感謝:-)

答えて

3

同じコードを使用することができます。

class Program 
{ 
    static void Main(string[] args) 
    { 
     string json = @"['Apple','Mango','Orange']"; 

     string[] jsonNew = JsonConvert.DeserializeObject<string[]>(json);    

     int[] jsonIntNew = jsonNew.AsEnumerable() 
            .Select(p => (int)Enum.Parse(typeof(Fruits), p, true)) 
            .ToArray(); 

     Console.Read(); 

    } 
} 

public enum Fruits 
{ 
    Apple = 1, 
    Mango = 2, 
    Orange = 3 
} 

あなたは、単一の行でそれを処理するには、以下のコードで行くことができます

static void Main(string[] args) 
{ 
    string json = @"['Apple','Mango','Orange']"; 

    //string[] jsonNew = JsonConvert.DeserializeObject<string[]>(json);    

    int[] jsonIntNew = JsonConvert.DeserializeObject<string[]>(json).AsEnumerable() 
         .Select(p => (int)Enum.Parse(typeof(Fruits), p, true)).ToArray(); 

    Console.Read(); 

} 
関連する問題