Ich habe gerade den XmlWriter verwendet, um XML zu erstellen, das in einer HTTP-Antwort zurückgesendet wird. Wie würden Sie einen JSON-String erstellen? Ich nehme an, Sie würden einfach einen StringBuilder verwenden, um den JSON-String aufzubauen und dann Ihre Antwort als JSON formatieren?
Antworten
Zu viele Anzeigen?
Orr
Punkte
4580
Mit Newtonsoft.Json zu verwenden macht es wirklich einfacher:
Product product = new Product();
product.Name = "Apple";
product.Expiry = new DateTime(2008, 12, 28);
product.Price = 3.99M;
product.Sizes = new string[] { "Small", "Medium", "Large" };
string json = JsonConvert.SerializeObject(product);
Dokumentation: JSON serialisieren und deserialisieren
Sie könnten die JavaScriptSerializer-Klasse verwenden, überprüfen Sie diesen Artikel, um eine nützliche Erweiterungsmethode zu erstellen.
Code aus dem Artikel:
namespace ExtensionMethods
{
public static class JSONHelper
{
public static string ToJSON(this object obj)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
return serializer.Serialize(obj);
}
public static string ToJSON(this object obj, int recursionDepth)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
serializer.RecursionLimit = recursionDepth;
return serializer.Serialize(obj);
}
}
}
Verwendung:
using ExtensionMethods;
...
List people = new List{
new Person{ID = 1, FirstName = "Scott", LastName = "Gurthie"},
new Person{ID = 2, FirstName = "Bill", LastName = "Gates"}
};
string jsonString = people.ToJSON();
Dr. K
Punkte
801
Einfache Verwendung der Newtonsoft.Json und Newtonsoft.Json.Linq Bibliotheken.
//Erstelle mein Objekt
var myData = new
{
Host = @"sftp.myhost.gr",
UserName = "my_username",
Password = "my_password",
SourceDir = "/export/zip/mypath/",
FileName = "my_file.zip"
};
//Wandle es in ein Json-Objekt um
string jsonData = JsonConvert.SerializeObject(myData);
//Gib das Json-Objekt aus
Console.WriteLine(jsonData);
//Parse das Json-Objekt
JObject jsonObject = JObject.Parse(jsonData);
//Gib das geparste Json-Objekt aus
Console.WriteLine((string)jsonObject["Host"]);
Console.WriteLine((string)jsonObject["UserName"]);
Console.WriteLine((string)jsonObject["Password"]);
Console.WriteLine((string)jsonObject["SourceDir"]);
Console.WriteLine((string)jsonObject["FileName"]);
hugoware
Punkte
34313
Joe Chung
Punkte
11545
Dieser Code-Schnipsel verwendet den DataContractJsonSerializer aus System.Runtime.Serialization.Json in .NET 3.5.
public static string ToJson(/* this */ T value, Encoding encoding)
{
var serializer = new DataContractJsonSerializer(typeof(T));
using (var stream = new MemoryStream())
{
using (var writer = JsonReaderWriterFactory.CreateJsonWriter(stream, encoding))
{
serializer.WriteObject(writer, value);
}
return encoding.GetString(stream.ToArray());
}
}
- See previous answers
- Weitere Antworten anzeigen