2017-08-28 66 views
0

我正在尋找一個C#庫,它將根據給定的JSON架構生成有效的JSON對象。我想產生一個非常簡單的JSON樣品就像Swagger是怎麼做的:用於將json架構轉換爲示例JSON的C#庫

enter image description here

我已經看到了一些JavaScript庫一樣JSON Schema Faker,但我需要一個C#/。NET圖書館,在那裏我可以生成。在我的後端代碼中示例JSON。

+0

我寫了一個簡單的,我只是需要找到一種使它成爲OSS的方法。簡單的工作並不難。讓我看看是否可以得到一小段代碼,以幫助您開始。 –

+0

非常感謝。 –

+0

*要求我們推薦或查找書籍,工具,軟件庫,教程或其他非本地資源的問題是堆棧溢出* – I4V

回答

2

好吧,它是非常簡單的,並沒有考慮到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); 
     } 
    } 
+0

非常感謝。正是我需要去的。 –