Yit*_*tuo 4 c# enums json deserialization
我正在对 stringEnumConverter 的自定义版本编写测试。但是当我反序列化时,我的测试一直在抛出。我搜索了堆栈溢出,但找不到我做错了什么。以下是我正在做的示例:
namespace ConsoleApp2
{
[Flags]
[JsonConverter(typeof(StringEnumConverter))]
enum TestEnum
{
none = 0,
obj1 = 1,
obj2 = 2
}
class Program
{
static void Main(string[] args)
{
var jsonString = "{none}";
var deserializedObject = JsonConvert.DeserializeObject<TestEnum>(jsonString);
}
}
}
Run Code Online (Sandbox Code Playgroud)
在解析枚举时,我在反序列化行上遇到的异常是 Unexpected token StartObject。
我怀疑这可能是因为我表示 json 字符串错误,我也试过"{\"none\"}", "{\"TestEnum\":\"none\"}", "{TestEnum:none}", "{none}" and "none".
{none} 不是有效的 JSON,但 'none' 是有效的!
您应该尝试以下操作:
public class Program
{
public static void Main()
{
Console.WriteLine("Hello World");
var jsonString = "'none'";
var deserializedObject = JsonConvert.DeserializeObject<TestEnum>(jsonString);
Console.WriteLine(deserializedObject);
}
}
Run Code Online (Sandbox Code Playgroud)
干杯!