我有这个JSON字符串:
string json=@"['Apple','Mango','Orange']";
我有以下枚举:
public enum Fruits
{
Apple=1,
Mango=2,
Orange=3
}
我想反序列化它,以便它给出相应的枚举数组。
int[] result= JsonConvert.Derserialize<int[]>(json)// I want results as [1,2,3]
答案 0 :(得分: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();
}