Ich verwende json.net, um eingehende json in einem WebApi-Dienst zu deserialisieren.C# -Fehler beim Deserialisieren von JSON
var lines = JsonConvert.DeserializeObject<RootObject>(json);
Nach einer Reihe von anderen ähnlichen Antworten zu lesen, es wirft immer noch diesen Fehler:
The best overloaded method match for 'Newtonsoft.Json.JsonConvert.DeserializeObject<RootObject>(string)' has some invalid arguments
Eingang json, die für die Post in Postman verwendet wird:
{ "data": [
{"zipcode":"56033","line1":"610 4TH ST","city":"FROST","state":"MN","cid":"1770"},
{"zipcode":"56033","line1":"45375 30TH ST","city":"FROST","state":"MN","cid":"1771"},
{"zipcode":"56033","line1":"115 4TH ST","city":"FROST","state":"MN","cid":"1772"}
]}
Die poco Klassen wurden erstellt mit: http://json2csharp.com.
public class Datum
{
public string zipcode { get; set; }
public string line1 { get; set; }
public string city { get; set; }
public string state { get; set; }
public string cid { get; set; }
}
public class RootObject
{
public List<Datum> data { get; set; }
}
Hier ist, was ich sehe, wenn ich den api debuggen:
{{
"data": [
{
"zipcode": "56032-0056",
"line1": "208 MAIN BOX 56",
"city": "FREEBORN",
"state": "MN",
"cid": "1732"
},
{
"zipcode": "56033",
"line1": "610 4TH ST",
"city": "FROST",
"state": "MN",
"cid": "1770"
},
{
"zipcode": "56033",
"line1": "45375 30TH ST",
"city": "FROST",
"state": "MN",
"cid": "1771"
},
{
"zipcode": "56033",
"line1": "115 4TH ST",
"city": "FROST",
"state": "MN",
"cid": "1772"
},
{
"zipcode": "56033",
"line1": "E 4TH ST",
"city": "FROST",
"state": "MN",
"cid": "1773"
}
]
}}
nicht sicher, warum WebAPI einen zusätzlichen Satz von geschweiften Klammern ist das Hinzufügen oder wie sie zu verhindern.
Wer sieht was ich vermisse?
Was ist 'json'? –
@GillBates JavaScript Objekt Notation – Sentry
@GillBates Sry, 1. April Gewohnheit. 'Json' ist wahrscheinlich was OP schrieb als" Input JSON " – Sentry