So generieren Sie automatisch eine C # -Klassendatei aus einer JSON-Zeichenfolge [geschlossen]

108

Angesichts des folgenden JSON-Objekts

form = {
  "name": "",
  "address": {
    "street": "",
    "city": "",
    "province": "",
    "postalCode": "",
    "country": ""
  },
  "phoneDay": "",
  "phoneCell": "",
  "businessName": "",
  "website": "",
  "email": ""
}

Was ist ein Tool zum automatischen Generieren der folgenden C # -Klasse?

public class ContactInfo
{
    public string Name { get; set; }
    public Address Address { get; set; }
    public string PhoneDay { get; set; }
    public string PhoneCell { get; set; }
    public string BusinessName { get; set; }
    public string Website { get; set; }
    public string Email { get; set; }
}

public class Address
{
    public string Street { get; set; }
    public string City { get; set; }
    public string Province { get; set; }
    public string PostalCode { get; set; }
    public string Country { get; set; }
}

Wir haben uns diese Fragen bereits angesehen:

Generieren von C # -Klassen aus JSON-Schema Fragen Sie nach JSON-Schemas, die möglicherweise später verwendet werden.

Vor- und Nachteile generierter C # -Klassen für Json-Objekte

Shaun Luttin
quelle
4
json2csharp.com ???
Habib
Versuchen Sie dieses Tool könnte helfen .. tools4geeks.com/json-to-Csharp-classes
Dheeraj Palagiri
Weiß jemand, wie man dasselbe mit Swagger YAML macht?
Ryanwebjackson
Leider ist json2charp.com jetzt eine Domain zum Verkauf. Das ist scheiße und das Quicktipe ist irgendwie klobig. Kennt jemand eine bessere Alternative?
DARKGuy
@DARKGuy jsonutils jsonutils.com
Rafael

Antworten:

146

Fünf Optionen:

  • Verwenden Sie das kostenlose Web-Tool jsonutils , ohne etwas zu installieren.

  • Wenn Sie Web Essentials in Visual Studio haben, verwenden Sie Bearbeiten> Spezial einfügen> JSON als Klasse einfügen.

  • Verwenden Sie die kostenlose jsonclassgenerator .exe

  • Für das Web-Tool app.quicktype.io muss nichts installiert werden.

  • Das Web-Tool json2csharp erfordert auch keine Installation.

Vor-und Nachteile:

Shaun Luttin
quelle
Sowohl Web Essentials als auch json2csharp leisten hervorragende Arbeit. Ich habe jsonclassgenerator nicht ausprobiert, da es mühsam schien, nur dafür eine separate App zu öffnen
Zoran P.
1
Ich habe jsonclassgenerator nicht ausprobiert, aber ich kann den Vorteil erkennen. Wenn Sie beispielsweise eine Schein-API hatten, können Sie über eine Reihe von Endpunkten interagieren, um Ihre Modelle neu zu generieren. Sie können sogar ein Skript festlegen, das nach neuen Commits sucht und das Modell aktualisiert, wenn sich etwas geändert hat. Sie möchten nicht jedes Mal einen neuen JSON manuell einfügen, da dies zu Fehlern führen kann.
Billy Jake O'Connor
Das Tool json2csharp erledigt die Formatierung der Klassen, insbesondere der Klassennamen, besser als VS. Es werden mehrdeutige Zeichen wie "_" entfernt und die Klassennamen danach korrekt in Groß- und Kleinschreibung geschrieben.
big_water
2
"jsonutils" ist ziemlich cool, es kann auch Attribute wie "Json properties" erzeugen, jsonutils.com
Dhanuka777
app.quicktype.io Dieser funktioniert auf einigen Computern aus Sicherheitsgründen nicht.
Sean Ch
121

Visual Studio 2012 (mit installiertem ASP.NET und Web Tools 2012.2 RC) unterstützt dies nativ .

Ab Visual Studio 2013 ist dies integriert.

Visual Studio Fügen Sie JSON als Klassen-Screenshot ein (Mit freundlicher Genehmigung von robert.muehsig )

Mrchief
quelle
4
Ich denke, diese Lösung ist die beste, weil Sie kein externes Programm benötigen!
Abraão Caldas
Vor dem Einfügen finden Sie hier eine Lösung zum Kopieren von JSON aus console.log im Entwicklertool in die Zwischenablage. Hoffnung hilft.
Shaijut
10

Wenn Sie Web Essentials in Visual Studio installieren, können Sie zu Bearbeiten => Past special => JSON als Klasse einfügen wechseln.

Das ist wahrscheinlich das einfachste, das es gibt.

Web Essentials: http://vswebessentials.com/

Kenneth
quelle