Ich frage mich, ob es irgendwelche Beispiele dafür gibt, wie man einen benutzerdefinierten JsonConverter für asp net mit JSON.Net erstellt, der einen TextReader oder einen StreamReader statt nur einer Zeichenfolge verwendet. Zum Beispiel gibt es Beispiele wie diese http://www.newtonsoft.com/json/help/html/CustomJsonConverter.htm , die benutzerdefinierte JsonConvert Klasse verwenden:Benutzerdefinierter Json.Net-Konverter mit streamreader statt string
string json =
"{
"Keys": [
"FirstName",
"LastName",
"Roles"
],
"FirstName": "James",
"LastName": "Newton-King",
"Roles": [
"Admin"
]
}"
Employee newEmployee = JsonConvert.DeserializeObject<Employee>(json, new KeysJsonConverter(typeof(Employee)));
aber ich frage mich, ob es möglich war, die json so deserialisieren, die einen Stromleser verwendet: http://www.newtonsoft.com/json/help/html/DeserializeWithJsonSerializerFromFile.htm
// deserialize JSON directly from a file
using (StreamReader file = File.OpenText(@"c:\movie.json"))
{
JsonSerializer serializer = new JsonSerializer();
// somehow make serializer use a custom JsonConverter
Movie movie2 = (Movie)serializer.Deserialize(file, typeof(Movie));
// hoping that movie2 contains the custom converted json
}
Dies würde definitiv helfen, weil Sie Eigenschaften, Werte, Arrays und ganze Objekte nicht in derselben Zeile haben könnten. Es als Stream zu lesen, könnte dir nur ein Stück von dem geben, wonach du suchst. – krillgar
Vielen Dank für die Antwort! Ich denke, ich wollte die Verwendung von ReadToEnd vermeiden, weil ich die Zeichenfolge nicht in den Speicher bringen wollte, nur für den Fall, dass es sich um eine sehr lange Datei handelte. Ich werde dies jedoch im Hinterkopf behalten – James