使用NJsonSchema转JSON Schema为C#模型时触发InvalidCastException异常
JSON Schema转C#模型时InvalidCastException问题解决
你遇到的System.InvalidCastException是因为**CSharpGenerator的构造函数需要接收JsonSchema类型的对象,而不是原始的JSON字符串**,直接传入字符串会导致类型转换失败。
修正步骤:
- 先将JSON Schema字符串解析为
JsonSchema对象 - 再用解析后的对象初始化
CSharpGenerator
修正后的完整代码:
using NJsonSchema; using NJsonSchema.CodeGeneration.CSharp; var schemaStr = """{"$schema":"http://json-schema.org/draft-04/schema#","title":"Person","type":"object","additionalProperties":false,"required":["FirstName","LastName"],"properties":{"FirstName":{"type":"string"},"LastName":{"type":"string"}},"definitions":{}}"""; // 将JSON字符串解析为JsonSchema对象 var schema = JsonSchema.Parse(schemaStr); // 使用JsonSchema对象创建生成器 var generator = new CSharpGenerator(schema); var file = generator.GenerateFile("mytest"); Console.WriteLine(file); Console.ReadLine();
补充说明:
- 如果是异步场景,也可以使用
await JsonSchema.FromJsonAsync(schemaStr)来解析 - 确保已正确安装
NJsonSchema和NJsonSchema.CodeGeneration.CSharp这两个NuGet包
内容的提问来源于stack exchange,提问作者lonelydev101
相关产品推荐
相关产品推荐

