Ich versuche, Newtonsoft.json zu verwenden, um eine Assembly von JSON-Dateien zu deserialisieren. Ich habe meine C# -Klassen entsprechend dem Schema, das großartig funktioniert. Wenn ich alle meine JSON-Dateien in einem zusammenfasse, deserialisiert es ohne Probleme, aber ich möchte einige lesbare Dateien haben. Um das zu tun, habe ich sie in mehreren Dateien getrennt.Deserialize mehrere JSON-Dateien
Wenn ich das tue, auch mit einer Verbindung zwischen ihnen, Newtonsoft.json kann nicht ein vollständiges Modell mit dem entsprechenden Schema erstellen.
Zum Beispiel, ich habe die unter C# -Klassen in Anwendung und DataModel
wie unten:
class Application
{
[JsonProperty("dataModel", NullValueHandling = NullValueHandling.Ignore)]
public DataModel dataModel { get; set; }
}
class DataModel
{
[JsonProperty("id", Required = Required.Always)]
public String id { get; set; }
}
und mein json deserialisiert ist:
application.json:
{ "dataModel": {"$ref":"data.json"} }
data.json:
{ "$id": "dataModel", "id": "dataModel", }
ich führen Sie den Code-Zeile deserialisieren:
JsonConvert.DeserializeObject(File.ReadAllText(@"application.json"),
new JsonSerializerSettings {
PreserveReferencesHandling = PreserveReferencesHandling.None,
ReferenceLoopHandling = ReferenceLoopHandling.Ignore
});
Danach habe ich nur überprüfen, ob meine Anwendung eine DataModel
haben, aber ich erhalte eine Ausnahme, die mir sagen, dass DataModel
null ist .
Ich weiß nicht, ob das Problem ist, weil Newtonsoft kann nicht die Verbindung zwischen einfachen JSON-Datei oder wenn es etwas anderes ist. Ein bisschen Hilfe ist willkommen :-)
Was passiert eigentlich, wenn Sie es versuchen? – Abion47
Newtonsoft kann Ihre JSON-Datei nicht deserialisieren, da sie nicht gültig ist. Json https://jsonlint.com/ –
Insbesondere ist der JSON der zweiten Datei aufgrund des zusätzlichen Kommas am Ende des zweiten "dataModel" ungültig. – Abion47