C# 10 / .net 6 / system.text.json < / p>
Ich arbeite mit einer API, die als JSON -Antwort zurückgibt. Ich versuche, System.text.json zu verwenden, um die JSON -Antwort in eine Klasse zu deserialisieren. Ich erhalte eine jSonexception und könnte Hilfe verwenden, um zu verstehen, was ich falsch mache.
Unhandled exception. System.Text.Json.JsonException: The JSON value could not be converted to KB4.Rootobject. Path: $ | LineNumber: 0 | BytePositionInLine: 1. at
System.Text.Json.ThrowHelper.ThrowJsonException_DeserializeUnableToConvertValue(Type propertyType) at
System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1.OnTryRead(Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options, ReadStack state, T value) at
System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options, ReadStackstate, T value) at
System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader reader, JsonSerializerOptions options, ReadStack state) at
System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 utf8Json, JsonTypeInfo jsonTypeInfo, Nullable`1 actualByteCount) at
System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 json, JsonTypeInfo jsonTypeInfo) at
System.Text.Json.JsonSerializer.Deserialize[TValue](String json, JsonSerializerOptions options) at KB4.Kb4.Main() in
C:\\Program.cs:line 188 at
KB4.Kb4.()
Einige Dinge, die ich ausprobiert habe:
Ändern des Namens des RootObject -Klasses, um Getallgroups zu erhalten. /> Bewertet Deserialize ein JSON -Array in C#, aber das verwendet JavaScriptSerializer.>
C# 10 / .net 6 / system.text.json < / p> Ich arbeite mit einer API, die als JSON -Antwort zurückgibt. Ich versuche, System.text.json zu verwenden, um die JSON -Antwort in eine Klasse zu deserialisieren. Ich erhalte eine jSonexception und könnte Hilfe verwenden, um zu verstehen, was ich falsch mache.[code]string json = await Retreive.Fetch(target);[/code] Hier ist die Ausgabe von Console.WriteLine (JSON) : [code][{"id": 1148082,"name": "TestGroup","group_type":"console_group","provisioning_guid": null,"member_count": 1,"current_risk_score": 36.3,"status": "active"},{"id": 1148788,"name": "Group2","group_type": "smart_group","provisioning_guid": null,"member_count": 9,"current_risk_score": 39.7,"status": "active"},{"id": 1148792,"name": "Group3","group_type": "smart_group","provisioning_guid": null,"member_count": 9,"current_risk_score": 39.7,"status": "active"}] < /code> Hier ist eine ziemlich gedruckte Version, wenn sie hilft: < /p> [ { "id": 1148082, "name": "TestGroup", "group_type": "console_group", "provisioning_guid": null, "member_count": 1, "current_risk_score": 36.3, "status": "active" }, { "id": 1148788, "name": "Group2", "group_type": "smart_group", "provisioning_guid": null, "member_count": 9, "current_risk_score": 39.7, "status": "active" }, { "id": 1148792, "name": "Group3", "group_type": "smart_group", "provisioning_guid": null, "member_count": 9, "current_risk_score": 39.7, "status": "active" } ] < /code> Verwenden von Visual Studio 2022 Paste JSON als Klassenfunktion, ich erhalte die folgende Klassenstruktur: < /p> public class Rootobject { public Class1[] Property1 { get; set; } }
public class Class1 { public int id { get; set; } public string name { get; set; } public string group_type { get; set; } public object provisioning_guid { get; set; } public int member_count { get; set; } public float current_risk_score { get; set; } public string status { get; set; } } < /code> Ich versuche: rootObject? gag = jsonSerializer.Deserialize (JSON); [/code] a JSonexception wird geworfen: [code]Unhandled exception. System.Text.Json.JsonException: The JSON value could not be converted to KB4.Rootobject. Path: $ | LineNumber: 0 | BytePositionInLine: 1. at System.Text.Json.ThrowHelper.ThrowJsonException_DeserializeUnableToConvertValue(Type propertyType) at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1.OnTryRead(Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options, ReadStack state, T value) at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options, ReadStackstate, T value) at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader reader, JsonSerializerOptions options, ReadStack state) at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 utf8Json, JsonTypeInfo jsonTypeInfo, Nullable`1 actualByteCount) at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 json, JsonTypeInfo jsonTypeInfo) at System.Text.Json.JsonSerializer.Deserialize[TValue](String json, JsonSerializerOptions options) at KB4.Kb4.Main() in C:\\Program.cs:line 188 at KB4.Kb4.() [/code] Einige Dinge, die ich ausprobiert habe:
[url=viewtopic.php?t=12045]Ändern[/url] des Namens des RootObject -Klasses, um Getallgroups zu erhalten. /> Bewertet Deserialize ein JSON -Array in C#, aber das verwendet JavaScriptSerializer.>
Ich erhalte eine JsonException in meinem Client, wenn er versucht, die Zeichenfolge zu deserialisieren. Nachdem ich mit der API herumgespielt habe, habe ich festgestellt, dass ein bestimmter...
Wenn der Code den Wert „4“ vom Typ „Integer“ enthält, stimmt etwas nicht. Wenn Sie „4“ in „4.0“ ändern, ist das in Ordnung. Ich dachte, der Integer-Typ könne automatisch in den Double-Typ konvertiert...
Ich habe einen wirklich seltsamen Fehler. Hier ist ein MRE:
var outputs = new (
(Typing First, Typing Second) a,
(Typing First, Typing Second) b,
(Typing First, Typing Second) c,
(Typing First,...