Tom*_*eck 5 json.net jsonschema swagger
我正在寻找一个 C# 库,它将根据给定的 JSON 模式生成一个有效的 JSON 对象。我想生成一个非常简单的 JSON 示例,就像Swagger 的做法一样:
我见过一些 JavaScript 库,如JSON Schema Faker,但我需要一个 C#/.Net 库,我可以在我的后端代码中生成示例 JSON。
好吧,它非常简单,没有考虑 JSON 模式的许多因素,但它可能是一个足够好的起点。它还依赖于 Newtonsoft 的 JsonSchema 库。
public class JsonSchemaSampleGenerator
{
public JsonSchemaSampleGenerator()
{
}
public static JToken Generate(JsonSchema schema)
{
JToken output;
switch (schema.Type)
{
case JsonSchemaType.Object:
var jObject = new JObject();
if (schema.Properties != null)
{
foreach (var prop in schema.Properties)
{
jObject.Add(TranslateNameToJson(prop.Key), Generate(prop.Value));
}
}
output = jObject;
break;
case JsonSchemaType.Array:
var jArray = new JArray();
foreach (var item in schema.Items)
{
jArray.Add(Generate(item));
}
output = jArray;
break;
case JsonSchemaType.String:
output = new JValue("sample");
break;
case JsonSchemaType.Float:
output = new JValue(1.0);
break;
case JsonSchemaType.Integer:
output = new JValue(1);
break;
case JsonSchemaType.Boolean:
output = new JValue(false);
break;
case JsonSchemaType.Null:
output = JValue.CreateNull();
break;
default:
output = null;
break;
}
return output;
}
public static string TranslateNameToJson(string name)
{
return name.Substring(0, 1).ToLower() + name.Substring(1);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2360 次 |
| 最近记录: |