我正在创建一个类,该类从具有多个属性的Json创建对象,并且其中一个属性具有一个数字,我希望以编程方式将其替换为与来自枚举类的所述数字相关联的对应值。问题是我想在auto属性中执行此操作。
这是我的JSON:
[{"reason":100000003}]
这是我的枚举类:
public enum option1
{
val1 = 100000001,
val2 = 100000002,
val3 = 100000003,
val4 = 100000004
}
public enum option2
{
val1 = 100000001,
val2 = 100000002,
val4 = 100000003,
val5 = 100000004
}
这是我的对象类:
public class Value{
private string reason;
[JsonProperty("reason")]
public string Reason
{
get
{
return reason;
}
set
{
reason = Indexer(reason,"test2");
}
}
class RootObject
{
public List<Value> Value { get; set; }
}
}
这里是将字符串号转换为相应值的功能
//for this example, index == "test2"
public static string Indexer(string input, string index)
{
string result = null;
if (index.Equals("test") || index.Equals("test2"))
{
switch (input)
{
case "100000001":
result = Value.option1.val1.ToString();
break;
case "100000002":
result = Value.option1.val2.ToString();
break;
case "100000003":
if (index.Equals("test1"))
result = Value.option1.val3.ToString();
else
result = Value.option2.val4.ToString();
break;
case "100000004":
if (index.Equals("test1"))
result =Value.option1.val4.ToString();
else
result = Value.option2.val5.ToString();
break;
default:
result = null;
break;
}
}
return result;
}
对于我的结果,我希望“对象”的“原因”字段为“ val4”而不是“ 100000003”,但它不起作用。