Πώς μετατρέπω ένα αντικείμενο C# σε συμβολοσειρά JSON στο .NET;

Έχω μαθήματα όπως αυτά:

class MyDate
{
    int year, month, day;
}

class Lad
{
    string firstName;
    string lastName;
    MyDate dateOfBirth;
}

Και θα ήθελα να μετατρέψω ένα αντικείμενο Lad σε μια συμβολοσειρά JSON όπως αυτή:

{
    "firstName":"Markoff",
    "lastName":"Chaney",
    "dateOfBirth":
    {
        "year":"1901",
        "month":"4",
        "day":"30"
    }
}

(χωρίς τη μορφοποίηση). Βρήκα αυτόν τον σύνδεσμο, αλλά χρησιμοποιεί ένα χώρο ονομάτων που δεν υπάρχει στο .NET 4. Άκουσα επίσης για το JSON.NET, αλλά ο ιστότοπός τους φαίνεται να είναι εκτός λειτουργίας αυτή τη στιγμή, και δεν μου αρέσει να χρησιμοποιώ εξωτερικά αρχεία DLL. Υπάρχουν άλλες επιλογές εκτός από τη χειροκίνητη δημιουργία ενός συγγραφέα συμβολοσειρών JSON;

Επειδή σε όλους μας αρέσουν τα μονολεκτικά λόγια

... αυτό εξαρτάται από το πακέτο Newtonsoft NuGet, το οποίο είναι δημοφιλές και καλύτερο από τον προεπιλεγμένο σειροποιητή.

Newtonsoft.Json.JsonConvert.SerializeObject(new {foo = "bar"})

Τεκμηρίωση: Serializing and Deserializing JSON

Σχόλια (9)
Λύση

Θα μπορούσατε να χρησιμοποιήσετε την κλάση [JavaScriptSerializer][1] (προσθέστε αναφορά στην System.Web.Extensions):

using System.Web.Script.Serialization;
Σχόλια (8)

Χρησιμοποιήστε την κλάση DataContractJsonSerializer: MSDN1, MSDN2.

Το παράδειγμά μου: ΕΔΩ.

Μπορεί επίσης να αποκαταστήσει με ασφάλεια αντικείμενα από μια συμβολοσειρά JSON, σε αντίθεση με το JavaScriptSerializer. Αλλά προσωπικά εξακολουθώ να προτιμώ το Json.NET.

Σχόλια (8)