NJsonSchema.CodeGeneration 11.6.0

NJsonSchema for .NET

NSwag | NJsonSchema | Apimundo | Namotion.Reflection

Azure DevOps Nuget Discord StackOverflow Wiki Apimundo

NJsonSchema is a .NET library to read, generate and validate JSON Schema draft v4+ schemas. The library can read a schema from a file or string and validate JSON data against it. A schema can also be generated from an existing .NET class. With the code generation APIs you can generate C# and TypeScript classes or interfaces from a schema.

The library uses Json.NET to read and write JSON data and Namotion.Reflection for additional .NET reflection APIs.

NuGet packages:

Preview NuGet Feed: https://www.myget.org/F/njsonschema/api/v3/index.json

Features:

NJsonSchema is heavily used in NSwag, a Swagger API toolchain for .NET which generates client code for Web API services. NSwag also provides command line tools to use the NJsonSchema's JSON Schema generator (command types2swagger).

The project is developed and maintained by Rico Suter and other contributors.

Some code generators can directly be used via the Apimundo service.

NJsonSchema usage

The JsonSchema class can be used as follows:

var schema = JsonSchema.FromType<Person>();
var schemaData = schema.ToJson();
var errors = schema.Validate("{...}");

foreach (var error in errors)
    Console.WriteLine(error.Path + ": " + error.Kind);

schema = await JsonSchema.FromJsonAsync(schemaData);

The Person class:

public class Person
{
    [Required]
    public string FirstName { get; set; }

    public string MiddleName { get; set; }

    [Required]
    public string LastName { get; set; }

    public Gender Gender { get; set; }

    [Range(2, 5)]
    public int NumberWithRange { get; set; }

    public DateTime Birthday { get; set; }

    public Company Company { get; set; }

    public Collection<Car> Cars { get; set; }
}

public enum Gender
{
    Male,
    Female
}

public class Car
{
    public string Name { get; set; }

    public Company Manufacturer { get; set; }
}

public class Company
{
    public string Name { get; set; }
}

The generated JSON schema data stored in the schemaData variable:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "title": "Person",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "FirstName",
    "LastName"
  ],
  "properties": {
    "FirstName": {
      "type": "string",
      "minLength": 1
    },
    "MiddleName": {
      "type": [
        "null",
        "string"
      ]
    },
    "LastName": {
      "type": "string",
      "minLength": 1
    },
    "Gender": {
      "$ref": "#/definitions/Gender"
    },
    "NumberWithRange": {
      "type": "integer",
      "format": "int32",
      "maximum": 5.0,
      "minimum": 2.0
    },
    "Birthday": {
      "type": "string",
      "format": "date-time"
    },
    "Company": {
      "oneOf": [
        {
          "type": "null"
        },
        {
          "$ref": "#/definitions/Company"
        }
      ]
    },
    "Cars": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/definitions/Car"
      }
    }
  },
  "definitions": {
    "Gender": {
      "type": "integer",
      "description": "",
      "x-enumNames": [
        "Male",
        "Female"
      ],
      "enum": [
        0,
        1
      ]
    },
    "Company": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": [
            "null",
            "string"
          ]
        }
      }
    },
    "Car": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "Name": {
          "type": [
            "null",
            "string"
          ]
        },
        "Manufacturer": {
          "oneOf": [
            {
              "type": "null"
            },
            {
              "$ref": "#/definitions/Company"
            }
          ]
        }
      }
    }
  }
}

NJsonSchema.CodeGeneration usage

The NJsonSchema.CodeGeneration can be used to generate C# or TypeScript code from a JSON schema:

var generator = new CSharpGenerator(schema);
var file = generator.GenerateFile();

The file variable now contains the C# code for all the classes defined in the JSON schema.

TypeScript

The previously generated JSON Schema would generate the following TypeScript interfaces.

Settings:

new TypeScriptGeneratorSettings { TypeStyle = TypeScriptTypeStyle.Interface, TypeScriptVersion = 4.3m }

Output:

export enum Gender {
    Male = 0, 
    Female = 1, 
}

export interface Company {
    Name: string | undefined;
}

export interface Car {
    Name: string | undefined;
    Manufacturer: Company | undefined;
}

export interface Person {
    FirstName: string;
    MiddleName: string | undefined;
    LastName: string;
    Gender: Gender;
    NumberWithRange: number;
    Birthday: Date;
    Company: Company | undefined;
    Cars: Car[] | undefined;
}

... and the following TypeScript classes.

Settings:

new TypeScriptGeneratorSettings { TypeStyle = TypeScriptTypeStyle.Class, TypeScriptVersion = 4.3m }

Output:

export enum Gender {
    Male = 0, 
    Female = 1, 
}

export class Company implements ICompany {
    name: string | undefined;

    constructor(data?: ICompany) {
        if (data) {
            for (var property in data) {
                if (data.hasOwnProperty(property))
                    (<any>this)[property] = (<any>data)[property];
            }
        }
    }

    init(data?: any) {
        if (data) {
            this.name = data["Name"];
        }
    }

    static fromJS(data: any): Company {
        let result = new Company();
        result.init(data);
        return result;
    }

    toJSON(data?: any) {
        data = typeof data === 'object' ? data : {};
        data["Name"] = this.name;
        return data; 
    }
}

export interface ICompany {
    name: string | undefined;
}

export class Car implements ICar {
    name: string | undefined;
    manufacturer: Company | undefined;

    constructor(data?: ICar) {
        if (data) {
            for (var property in data) {
                if (data.hasOwnProperty(property))
                    (<any>this)[property] = (<any>data)[property];
            }
        }
    }

    init(data?: any) {
        if (data) {
            this.name = data["Name"];
            this.manufacturer = data["Manufacturer"] ? Company.fromJS(data["Manufacturer"]) : <any>undefined;
        }
    }

    static fromJS(data: any): Car {
        let result = new Car();
        result.init(data);
        return result;
    }

    toJSON(data?: any) {
        data = typeof data === 'object' ? data : {};
        data["Name"] = this.name;
        data["Manufacturer"] = this.manufacturer ? this.manufacturer.toJSON() : <any>undefined;
        return data; 
    }
}

export interface ICar {
    name: string | undefined;
    manufacturer: Company | undefined;
}

export class Person implements IPerson {
    firstName: string;
    middleName: string | undefined;
    lastName: string;
    gender: Gender;
    numberWithRange: number;
    birthday: Date;
    company: Company | undefined;
    cars: Car[] | undefined;

    constructor(data?: IPerson) {
        if (data) {
            for (var property in data) {
                if (data.hasOwnProperty(property))
                    (<any>this)[property] = (<any>data)[property];
            }
        }
    }

    init(data?: any) {
        if (data) {
            this.firstName = data["FirstName"];
            this.middleName = data["MiddleName"];
            this.lastName = data["LastName"];
            this.gender = data["Gender"];
            this.numberWithRange = data["NumberWithRange"];
            this.birthday = data["Birthday"] ? new Date(data["Birthday"].toString()) : <any>undefined;
            this.company = data["Company"] ? Company.fromJS(data["Company"]) : <any>undefined;
            if (data["Cars"] && data["Cars"].constructor === Array) {
                this.cars = [];
                for (let item of data["Cars"])
                    this.cars.push(Car.fromJS(item));
            }
        }
    }

    static fromJS(data: any): Person {
        let result = new Person();
        result.init(data);
        return result;
    }

    toJSON(data?: any) {
        data = typeof data === 'object' ? data : {};
        data["FirstName"] = this.firstName;
        data["MiddleName"] = this.middleName;
        data["LastName"] = this.lastName;
        data["Gender"] = this.gender;
        data["NumberWithRange"] = this.numberWithRange;
        data["Birthday"] = this.birthday ? this.birthday.toISOString() : <any>undefined;
        data["Company"] = this.company ? this.company.toJSON() : <any>undefined;
        if (this.cars && this.cars.constructor === Array) {
            data["Cars"] = [];
            for (let item of this.cars)
                data["Cars"].push(item.toJSON());
        }
        return data; 
    }
}

export interface IPerson {
    firstName: string;
    middleName: string | undefined;
    lastName: string;
    gender: Gender;
    numberWithRange: number;
    birthday: Date;
    company: Company | undefined;
    cars: Car[] | undefined;
}

NJsonSchema.SampleJsonSchemaGenerator usage

The NJsonSchema.SampleJsonSchemaGenerator can be used to generate a JSON Schema from sample JSON data:

JSON Schema Specification

By default, the NJsonSchema.SampleJsonSchemaGenerator generates a JSON Schema based on the JSON Schema specification. See: JSON Schema Specification

var generator = new SampleJsonSchemaGenerator(new SampleJsonSchemaGeneratorSettings());

var schema = generator.Generate("{...}");

Input:

{
  "int": 1,
  "float": 340282346638528859811704183484516925440.0,
  "str": "abc",
  "bool": true,
  "date": "2012-07-19",
  "datetime": "2012-07-19 10:11:11",
  "timespan": "10:11:11"
}

Output:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "int": {
      "type": "integer"
    },
    "float": {
      "type": "number"
    },
    "str": {
      "type": "string"
    },
    "bool": {
      "type": "boolean"
    },
    "date": {
      "type": "string",
      "format": "date"
    },
    "datetime": {
      "type": "string",
      "format": "date-time"
    },
    "timespan": {
      "type": "string",
      "format": "duration"
    }
  }
}

OpenApi Specification

To generate a JSON Schema for OpenApi, provide the SchemaType.OpenApi3 in the settings. See: OpenApi Specification

var generator = new SampleJsonSchemaGenerator(new SampleJsonSchemaGeneratorSettings { SchemaType = SchemaType.OpenApi3 });

var schema = generator.Generate("{...}");

Input:

{
  "int": 12345,
  "long": 1736347656630,
  "float": 340282346638528859811704183484516925440.0,
  "double": 340282346638528859811704183484516925440123456.0,
}

Output:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "int": {
      "type": "integer",
      "format": "int32"
    },
    "long": {
      "type": "integer",
      "format": "int64"
    },
    "float": {
      "type": "number",
      "format": "float"
    },
    "double": {
      "type": "number",
      "format": "double"
    }
  }
}

Final notes

Applications which use the library:

Showing the top 20 packages that depend on NJsonSchema.CodeGeneration.

Packages Downloads
NSwag.CodeGeneration
NSwag: The Swagger API toolchain for .NET and TypeScript
18
NJsonSchema.CodeGeneration.CSharp
JSON Schema reader, generator and validator for .NET
17
NSwag.CodeGeneration
NSwag: The Swagger API toolchain for .NET and TypeScript
17
NSwag.CodeGeneration
NSwag: The OpenAPI/Swagger API toolchain for .NET and TypeScript
17
NSwag.CodeGeneration
NSwag: The Swagger API toolchain for .NET and TypeScript
16
NJsonSchema.CodeGeneration.TypeScript
JSON Schema reader, generator and validator for .NET
16
NJsonSchema.CodeGeneration.TypeScript
JSON Schema draft v4 reader, generator and validator for .NET
16
NJsonSchema.CodeGeneration.CSharp
JSON Schema reader, generator and validator for .NET
16
NJsonSchema.CodeGeneration.CSharp
JSON Schema draft v4 reader, generator and validator for .NET
16
NSwag.CodeGeneration
NSwag: The Swagger API toolchain for .NET
16
NSwag.CodeGeneration
NSwag: The OpenAPI/Swagger API toolchain for .NET and TypeScript
16
NSwag.Commands
NSwag: The Swagger API toolchain for .NET and TypeScript
15
NSwag.Commands
NSwag: The OpenAPI/Swagger API toolchain for .NET and TypeScript
15
NJsonSchema.CodeGeneration.TypeScript
JSON Schema reader, generator and validator for .NET
15
NJsonSchema.CodeGeneration.TypeScript
JSON Schema draft v4 reader, generator and validator for .NET
15

.NET Framework 4.6.2

.NET 8.0

.NET Standard 2.0

Version Downloads Last updated
11.6.0 1 2026/4/19
11.5.2 5 2025/11/28
11.5.1 7 2025/10/5
11.5.0 7 2025/9/23
11.4.0 6 2025/10/6
11.3.2 7 2025/5/27
11.3.1 9 2025/5/29
11.3.0 7 2025/5/29
11.2.0 8 2025/5/29
11.1.0 10 2025/5/29
11.0.2 7 2025/5/29
11.0.1 9 2025/5/29
11.0.0 7 2025/5/29
11.0.0-preview008 7 2025/5/28
11.0.0-preview007 6 2025/5/28
11.0.0-preview006 9 2025/5/28
11.0.0-preview005 6 2025/5/28
11.0.0-preview004 8 2025/5/28
11.0.0-preview003 11 2025/5/28
11.0.0-preview002 9 2025/5/28
11.0.0-preview001 10 2025/5/29
10.9.0 7 2025/5/29
10.8.0 9 2025/5/29
10.7.2 8 2025/5/29
10.7.1 7 2025/5/29
10.7.0 8 2025/5/29
10.6.10 7 2025/5/29
10.6.9 6 2025/5/29
10.6.8 8 2025/5/29
10.6.7 6 2025/5/28
10.6.6 8 2025/5/29
10.6.5 7 2025/5/29
10.6.4 8 2025/5/29
10.6.3 7 2025/5/29
10.6.2 7 2025/5/29
10.6.1 8 2025/5/29
10.6.0 7 2025/5/29
10.5.2 6 2025/5/28
10.5.1 7 2025/5/29
10.5.0 7 2025/5/29
10.4.6 7 2025/5/29
10.4.5 6 2025/5/29
10.4.4 6 2025/5/29
10.4.3 10 2025/5/29
10.4.2 7 2025/5/29
10.4.1 8 2025/5/29
10.4.0 9 2025/5/29
10.3.11 13 2025/5/29
10.3.10 7 2025/5/29
10.3.9 7 2025/5/29
10.3.8 7 2025/5/29
10.3.7 7 2025/5/28
10.3.6 10 2025/5/29
10.3.5 6 2025/5/29
10.3.4 13 2025/5/29
10.3.3 7 2025/5/29
10.3.2 7 2025/5/29
10.3.1 8 2025/5/29
10.3.0 7 2025/5/29
10.2.2 11 2025/5/29
10.2.1 9 2025/5/29
10.2.0 13 2025/5/28
10.1.26 13 2025/5/29
10.1.25 5 2025/5/29
10.1.24 7 2025/5/28
10.1.23 7 2025/5/29
10.1.22 8 2025/5/29
10.1.21 8 2025/5/29
10.1.20 8 2025/5/29
10.1.19 6 2025/5/29
10.1.18 7 2025/5/29
10.1.17 12 2025/5/29
10.1.16 6 2025/5/29
10.1.15 12 2025/5/29
10.1.14 6 2025/5/29
10.1.13 6 2025/5/29
10.1.12 8 2025/5/29
10.1.11 8 2025/5/28
10.1.10 5 2025/5/29
10.1.9 6 2025/5/29
10.1.8 6 2025/5/29
10.1.7 6 2025/5/29
10.1.6 6 2025/5/30
10.1.5 12 2025/5/29
10.1.4 8 2025/5/28
10.1.3 7 2025/5/29
10.1.2 9 2025/5/29
10.1.1 7 2025/5/29
10.1.0 6 2025/5/29
10.0.28 6 2025/5/29
10.0.27 6 2025/5/29
10.0.26 8 2025/5/29
10.0.25 6 2025/5/29
10.0.24 8 2025/5/29
10.0.23 7 2025/5/29
10.0.22 8 2025/5/29
10.0.21 13 2025/5/29
10.0.20 8 2025/5/29
10.0.19 6 2025/5/29
10.0.18 13 2025/5/29
10.0.17 10 2025/5/29
10.0.16 5 2025/5/29
10.0.15 12 2025/5/29
10.0.14 8 2025/5/29
10.0.13 6 2025/5/29
10.0.12 6 2025/5/29
10.0.11 9 2025/5/29
10.0.10 7 2025/5/29
10.0.9 5 2025/5/29
10.0.8 10 2025/5/29
10.0.7 8 2025/5/29
10.0.6 8 2025/5/29
10.0.5 7 2025/5/29
10.0.4 7 2025/5/29
10.0.3 7 2025/5/29
10.0.1 7 2025/5/29
10.0.0 13 2025/5/29
9.14.1 6 2025/5/29
9.14.0 6 2025/5/29
9.13.37 7 2025/5/29
9.13.36 5 2025/5/29
9.13.35 7 2025/5/29
9.13.34 10 2025/5/29
9.13.33 13 2025/5/29
9.13.32 5 2025/5/29
9.13.31 6 2025/5/29
9.13.30 8 2025/5/29
9.13.29 6 2025/5/29
9.13.28 16 2025/5/29
9.13.27 6 2025/5/29
9.13.26 9 2025/5/29
9.13.25 6 2025/5/29
9.13.24 5 2025/5/29
9.13.23 10 2025/5/29
9.13.22 10 2025/5/29
9.13.19 5 2025/5/29
9.13.18 8 2025/5/29
9.13.17 8 2025/5/29
9.13.16 6 2025/5/29
9.13.15 12 2025/5/29
9.13.14 7 2025/5/29
9.13.13 9 2025/5/29
9.13.12 8 2025/5/29
9.13.11 6 2025/5/29
9.13.10 12 2025/5/29
9.13.9 6 2025/5/29
9.13.8 8 2025/5/29
9.13.7 6 2025/5/29
9.13.5 7 2025/5/29
9.13.4 7 2025/5/28
9.13.3 8 2025/5/29
9.13.2 8 2025/5/29
9.13.1 8 2025/5/29
9.13.0 7 2025/5/29
9.12.7 8 2025/5/29
9.12.6 7 2025/5/29
9.12.5 6 2025/5/29
9.12.4 8 2025/5/29
9.12.3 8 2025/5/29
9.12.2 10 2025/5/29
9.12.1 6 2025/5/29
9.12.0 8 2025/5/29
9.11.1 8 2025/5/29
9.11.0 6 2025/5/29
9.10.75 7 2025/5/29
9.10.74 16 2025/5/29
9.10.73 6 2025/5/29
9.10.72 8 2025/5/29
9.10.71 15 2025/5/29
9.10.70 5 2025/5/29
9.10.69 7 2025/5/29
9.10.68 8 2025/5/29
9.10.67 9 2025/5/29
9.10.66 7 2025/5/29
9.10.65 15 2025/5/29
9.10.64 5 2025/5/29
9.10.63 6 2025/5/29
9.10.62 7 2025/5/29
9.10.61 7 2025/5/29
9.10.60 6 2025/5/29
9.10.59 6 2025/5/29
9.10.58 5 2025/5/29
9.10.57 8 2025/5/29
9.10.56 8 2025/5/29
9.10.55 7 2025/5/29
9.10.54 7 2025/5/29
9.10.53 7 2025/5/28
9.10.52 6 2025/5/29
9.10.51 7 2025/5/28
9.10.50 8 2025/5/29
9.10.49 4 2025/5/29
9.10.48 8 2025/5/29
9.10.47 8 2025/5/29
9.10.46 6 2025/5/29
9.10.45 7 2025/5/29
9.10.44 8 2025/5/29
9.10.43 7 2025/5/29
9.10.42 6 2025/5/29
9.10.41 13 2025/5/29
9.10.40 6 2025/5/29
9.10.39 10 2025/5/29
9.10.38 17 2025/5/29
9.10.37 8 2025/5/29
9.10.36 6 2025/5/28
9.10.35 7 2025/5/29
9.10.34 8 2025/5/28
9.10.33 6 2025/5/29
9.10.32 7 2025/5/29
9.10.31 7 2025/5/28
9.10.30 7 2025/5/29
9.10.29 8 2025/5/29
9.10.28 9 2025/5/29
9.10.27 5 2025/5/29
9.10.26 6 2025/5/29
9.10.25 9 2025/5/29
9.10.24 7 2025/5/29
9.10.23 6 2025/5/29
9.10.22 7 2025/5/29
9.10.21 8 2025/5/29
9.10.20 8 2025/5/29
9.10.19 6 2025/5/29
9.10.18 8 2025/5/29
9.10.17 6 2025/5/29
9.10.16 6 2025/5/29
9.10.15 9 2025/5/29
9.10.14 8 2025/5/28
9.10.13 6 2025/5/29
9.10.12 6 2025/5/29
9.10.11 10 2025/5/29
9.10.10 6 2025/5/29
9.10.9 7 2025/5/29
9.10.8 7 2025/5/29
9.10.7 5 2025/5/28
9.10.6 9 2025/5/29
9.10.5 8 2025/5/29
9.10.4 10 2025/5/29
9.10.3 11 2025/5/28
9.10.2 6 2025/5/29
9.10.1 13 2025/5/29
9.10.0 11 2025/5/29
9.9.17 8 2025/5/29
9.9.16 8 2025/5/29
9.9.15 14 2025/5/29
9.9.14 14 2025/5/29
9.9.13 7 2025/5/29
9.9.12 8 2025/5/29
9.9.11 5 2025/5/29
9.9.10 9 2025/5/28
9.9.9 5 2025/5/29
9.9.8 9 2025/5/29
9.9.7 7 2025/5/29
9.9.6 8 2025/5/29
9.9.5 7 2025/5/29
9.9.4 6 2025/5/29
9.9.3 8 2025/5/29
9.9.2 5 2025/5/29
9.9.1 5 2025/5/29
9.9.0 7 2025/5/29
9.8.3 8 2025/5/29
9.8.2 10 2025/5/29
9.8.1 9 2025/5/29
9.8.0 9 2025/5/29
9.7.7 7 2025/5/29
9.7.6 7 2025/5/29
9.7.5 5 2025/10/5
9.7.3 7 2025/5/29
9.7.2 9 2025/5/28
9.7.1 7 2025/5/28
9.7.0 7 2025/5/29
9.6.5 7 2025/5/29
9.6.4 7 2025/5/29
9.6.3 8 2025/5/29
9.6.2 10 2025/5/29
9.6.1 6 2025/5/29
9.6.0 6 2025/5/29
9.5.4 13 2025/5/29
9.5.3 8 2025/5/29
9.5.2 8 2025/5/29
9.5.1 6 2025/5/29
9.5.0 14 2025/5/29
9.4.10 5 2025/5/29
9.4.9 12 2025/5/29
9.4.8 6 2025/5/29
9.4.7 6 2025/5/29
9.4.6 7 2025/5/29
9.4.5 8 2025/4/17
9.4.4 6 2025/5/29
9.4.3 9 2025/5/29
9.4.2 13 2025/5/29
9.4.1 5 2025/5/29
9.4.0 6 2025/5/29
9.3.2 8 2025/5/29
9.3.1 8 2025/5/29
9.3.0 8 2025/5/29
9.2.5 12 2025/5/29
9.2.4 9 2025/5/29
9.2.3 8 2025/5/29
9.2.2 7 2025/5/29
9.2.1 7 2025/5/28
9.2.0 7 2025/5/29
9.1.13 6 2025/5/29
9.1.12 8 2025/5/29
9.1.11 9 2025/5/29
9.1.10 8 2025/5/28
9.1.9 7 2025/5/29
9.1.8 8 2025/5/29
9.1.7 14 2025/5/29
9.1.6 7 2025/5/29
9.1.5 15 2025/5/29
9.1.4 8 2025/5/29
9.1.3 11 2025/5/29
9.1.2 8 2025/5/29
9.1.1 6 2025/5/29
9.1.0 7 2025/5/29
9.0.0 6 2025/5/28
8.34.6331.29195 6 2025/5/28
8.33.6323.36234 6 2025/5/28
8.32.6319.16954 5 2025/5/28
8.31.6318.20496 6 2025/5/28
8.30.6304.31907 6 2025/5/29
8.29.6304.29598 6 2025/5/29
8.28.6304.29323 5 2025/5/28
8.27.6302.16061 6 2025/5/28
8.26.6300.23803 5 2025/5/29
8.25.6298.25745 16 2025/4/17
8.24.6298.12188 8 2025/5/28
8.23.6298.10833 6 2025/5/28
8.22.6296.25118 5 2025/5/29
8.21.6296.23976 7 2025/5/28
8.20.6296.23156 6 2025/5/28
8.19.6295.40488 7 2025/5/28
8.18.6295.39662 6 2025/5/28
8.17.6295.16512 8 2025/5/28
8.16.6295.13544 8 2025/5/28
8.15.6294.28833 6 2025/5/29
8.14.6289.34376 4 2025/5/28
8.13.6288.31202 9 2025/5/28
8.12.6288.29376 6 2025/5/28
8.11.6284.26878 9 2025/5/29
8.10.6282.29590 5 2025/5/28
8.9.6275.22314 10 2025/5/28
8.8.6270.12850 7 2025/5/28
8.7.6267.38146 6 2025/5/29
8.6.6263.34639 6 2025/5/29
8.5.6255.20272 5 2025/5/29
8.4.6254.24670 4 2025/5/28
8.3.6252.27823 6 2025/5/28
8.2.6249.40706 7 2025/5/21
8.1.6249.15650 6 2025/5/28
8.0.6242.20256 7 2025/5/28
7.10.6235.25418 7 2025/5/28
7.9.6234.40183 5 2025/5/29
7.8.6234.39161 5 2025/5/29
7.7.6231.35505 6 2025/5/28
7.6.6221.22554 6 2025/5/29
7.5.6218.39592 7 2025/5/28
7.4.6218.34187 6 2025/5/28
7.3.6214.21001 6 2025/5/28
7.2.6206.27052 9 2025/5/28
7.1.6203.28289 8 2025/5/28
7.0.6201.32794 10 2025/5/28
6.8.6197.43076 6 2025/5/29
6.7.6197.28472 7 2025/5/29
6.6.6192.39836 5 2025/5/29
6.5.6190.16910 6 2025/5/28
6.4.6189.32876 10 2025/5/28
6.3.6185.19861 6 2025/5/29
6.2.6179.20107 5 2025/5/28
6.1.6179.17509 6 2025/5/29
6.0.6178.42031 10 2025/5/29
5.20.6175.31167 5 2025/5/28
5.19.6171.28316 5 2025/5/29
5.18.6170.22063 7 2025/5/29
5.17.6169.42629 6 2025/5/28
5.16.6156.29215 10 2025/5/28
5.15.6154.34583 6 2025/5/29
5.14.6153.20988 8 2025/5/29
5.13.6150.21323 6 2025/5/29
5.12.6149.950 5 2025/5/29
5.11.6148.42451 9 2025/5/28
5.10.6148.26189 7 2025/5/29
5.9.6144.17990 5 2025/5/28
5.8.6143.37542 10 2025/5/29
5.7.6142.39228 9 2025/5/29
5.6.6142.18206 7 2025/5/28
5.5.6138.25615 7 2025/5/28
5.5.6138.25231 7 2025/5/28
5.4.6138.25088 6 2025/5/28
5.4.6138.24413 6 2025/5/28
5.3.6137.40406 8 2025/5/28
5.2.6135.25892 9 2025/5/29
5.1.6130.30070 6 2025/5/28
5.0.6130.17623 11 2025/5/28
4.28.6128.27589 11 2025/5/28
4.27.6128.21479 8 2025/5/28
4.26.6123.28533 5 2025/5/28
4.25.6122.24179 9 2025/5/28
4.24.6122.15984 8 2025/5/28
4.23.6120.19206 14 2025/5/28
4.22.6120.18408 6 2025/5/28
4.21.6119.18329 5 2025/5/28
4.20.6119.18035 8 2025/5/28
4.19.6118.22551 11 2025/5/28
4.18.6117.31903 5 2025/5/29
4.17.6115.27875 16 2025/5/28
4.16.6115.26710 7 2025/5/28
4.15.6113.36675 6 2025/5/28
4.14.6108.28116 5 2025/5/28
4.13.6107.31016 8 2025/5/28
4.12.6103.41722 6 2025/5/29
4.11.6103.32936 6 2025/5/29
4.10.6103.22761 8 2025/5/29
4.9.6102.40549 5 2025/5/29
4.8.6094.34028 10 2025/5/28
4.7.6093.32380 6 2025/5/28
4.6.6093.13919 5 2025/5/29
4.5.6091.37159 12 2025/5/29
4.4.6091.25565 5 2025/5/28
4.3.6089.14049 5 2025/5/28
4.2.6085.38782 11 2025/5/28
4.1.6075.30950 5 2025/5/28
4.0.6074.30968 4 2025/5/28
3.4.6065.33501 6 2025/5/29
3.3.6061.16591 6 2025/5/29
3.2.6060.41151 7 2025/5/28
3.1.6058.33392 10 2025/5/28
3.0.6058.19298 10 2025/5/28
2.65.6055.39156 6 2025/5/28
2.64.6055.38772 5 2025/5/28
2.62.6049.40363 6 2025/5/28
2.61.6047.40645 8 2025/5/28
2.60.6043.38308 6 2025/5/29
2.59.6040.32733 6 2025/5/29
2.58.6038.30301 9 2025/5/28
2.57.6037.28395 5 2025/5/28
2.56.6036.39821 9 2025/5/29
2.55.6036.31334 7 2025/5/28
2.54.6032.25764 4 2025/5/29
2.53.6030.34287 6 2025/5/28
2.52.6030.13791 5 2025/5/28
2.51.6022.22788 6 2025/5/28
2.50.6019.27728 5 2025/5/28
2.49.6019.25465 6 2025/5/28
2.48.6012.40850 7 2025/5/29
2.47.6012.36610 0 2016/6/17
2.46.6012.18625 7 2025/5/28
2.45.6011.39986 8 2025/5/28
2.44.6011.37468 7 2025/5/28
2.43.6010.35601 6 2025/5/28
2.41.6006.20162 5 2025/5/28
2.40.6005.16497 7 2025/5/28
2.39.6004.37510 7 2025/5/28
2.38.6002.31139 6 2025/5/28
2.37.6002.13678 5 2025/5/29
2.36.6001.31067 12 2025/5/28
2.35.6000.32416 6 2025/5/28
2.34.6000.31960 6 2025/5/28
2.33.6000.30328 5 2025/5/29
2.32.6000.24909 6 2025/5/28
2.31.5998.34797 12 2025/5/29
2.30.5998.28513 6 2025/5/28
2.29.5997.39529 6 2025/5/28
2.28.5997.37673 7 2025/5/29
2.27.5995.31646 6 2025/5/28
2.26.5992.40824 5 2025/5/29
2.25.5989.40404 5 2025/5/28
2.24.5988.28093 13 2025/5/28
2.23.5984.32961 7 2025/5/29
2.22.5984.16718 8 2025/5/28
2.21.5981.35959 6 2025/5/29
2.20.5981.32983 7 2025/5/28
2.19.5978.21535 10 2025/5/28
2.18.5976.28451 7 2025/5/28
2.17.5976.27664 13 2025/5/28
2.16.5975.38442 12 2025/5/28
2.15.5970.28126 6 2025/5/29
2.14.5967.31320 5 2025/5/28
2.13.5966.35760 7 2025/5/28
2.12.5965.33915 9 2025/5/28
2.11.5963.475 5 2025/5/29
2.10.5958.25557 6 2025/5/29
2.9.5956.34079 5 2025/5/28
2.8.5956.13681 11 2025/5/28
2.7.5954.13236 6 2025/5/29
2.6.5946.13963 5 2025/5/29
2.5.5941.14559 6 2025/5/29
2.4.5940.38663 9 2025/5/28
2.3.5940.24970 10 2025/5/28
2.2.5940.22488 8 2025/5/28
2.1.5940.20330 5 2025/5/28
2.0.5928.2915 9 2025/5/28
1.39.5923.31344 7 2025/5/28
1.38.5920.30380 8 2025/5/28
1.37.5912.16400 8 2025/5/28
1.36.5908.3839 6 2025/5/28
1.35.5908.510 9 2025/5/28
1.34.5905.41330 10 2025/5/28
1.32.5904.40564 8 2025/5/28
1.31.5892.26482 11 2025/5/28
1.30.5878.31385 13 2025/5/28
1.29.5875.38536 10 2025/5/28
1.29.5875.38249 11 2025/5/28
1.29.5875.36303 10 2025/5/28
1.28.5872.19133 9 2025/5/29
1.27.5865.35297 6 2025/5/28
1.26.5864.35161 9 2025/5/29
1.25.5861.38103 7 2025/5/29
1.24.5858.29181 9 2025/5/29
1.23.5856.30578 5 2025/5/29
1.22.5836.1198 6 2025/5/28
1.21.5834.30412 14 2025/5/29
1.21.5831.34291 8 2025/5/28
1.21.5830.29525 11 2025/5/28
1.20.5829.20855 5 2025/5/28
1.20.5829.15819 6 2025/5/28
1.19.5828.20064 9 2025/5/28
1.19.5827.22433 8 2025/5/28
1.19.5824.3256 7 2025/5/29
1.18.5822.14857 6 2025/5/28
1.18.5821.36807 7 2025/5/28
1.17.5820.28488 5 2025/5/28
1.16.5820.27109 8 2025/5/28
1.15.5812.25746 7 2025/5/29
1.14.5811.24408 7 2025/5/28
1.13.5811.23634 7 2025/5/29
1.12.5801.29459 6 2025/6/9
1.11.5799.31778 7 2025/5/28
1.10.5779.31943 8 2025/5/28
1.9.5778.39698 6 2025/5/29
1.9.5778.38906 6 2025/5/29
1.9.5778.31079 7 2025/5/29
1.8.5777.37129 7 2025/5/29
1.8.5775.25810 5 2025/5/29
1.7.5770.30723 5 2025/5/29
1.6.5769.33302 6 2025/5/29
1.6.5765.33542 12 2025/5/29
1.6.5763.16697 6 2025/5/28
1.6.5760.32685 6 2025/5/28
1.6.5759.33134 8 2025/5/29
1.6.5758.30931 9 2025/5/29
1.6.5757.40238 10 2025/5/28
1.6.5751.15394 5 2025/5/29
1.5.5750.33915 11 2025/5/29
1.5.5750.33435 10 2025/5/28
1.4.5737.33581 5 2025/5/28
1.4.5732.34143 5 2025/5/28
1.4.5731.36730 6 2025/5/28
1.3.5731.34877 9 2025/5/29
1.2.5730.33570 4 2025/5/28
1.1.5729.33708 7 2025/5/29
1.0.5725.35303 6 2025/5/29
0.2.5707.34168 7 2025/5/29
0.2.5707.33650 8 2025/5/28
0.1.5585.25898 11 2025/5/28
0.1.5582.28800 7 2025/5/28