Swift Types from C#
Do you have a C# codebase with model classes for a JSON API? Did you ever have to use that API with another programming language, wishing there was a way to automatically convert your C# model to that other language? With quicktype and Json.NET, there is!
In this post I'll show you how to convert your C# model to Swift, but if you'd rather watch than read, here's a video that shows how to do it in one minute, for a model in this Open Source project:
One piece of the puzzle is Newtonsoft's JSON Schema package, which has a feature to generate a JSON Schema from a C# model class. That schema then serves as input to quicktype, which will generate the equivalent model classes in your favorite programming language. These are the steps to swift success:
-
Add the Json.Schema NuGet package to your project.
-
Put this code somewhere it will run. As a one-off, you can just do it first thing in your
Main
method, like I showed in the video. If you want the option to run it again, maybe because you foresee that the model might change, you might even want to make a separate project just to run it:
var generator = new JSchemaGenerator();
var schema = generator.Generate(typeof(MyModelClass));
File.WriteAllText("schema.json", schema.ToString());
- Run the code. You should now have a
schema.json
file that you can copy and paste into quicktype. Pick whichever programming language you need the model in, and witness the magic!