Suche auf 'Newtonsoft.Json.JsonReaderException: Additional text encountered after finished reading JSON content: {. Path '', ...'
findet mindestens 3 SO-Fragen, von denen alle auf ungültige JSON zurückverfolgt wurden.JObject.Parse wirft Fehler auf gültige JSON
Ich habe 3 verschiedene Validatoren anprobiert:
[{"Imported": "This registration imported on: 06/20/2016"},{"ContactInfoUpdated": " Street Address2: Suite 222 to Shipping Address2: "}]
und alle drei Bericht als gültig. Und doch ist der Laufzeitfehler schleudert die gleiche ‚Zusätzlicher Text angetroffen ...‘:
if (!string.IsNullOrWhiteSpace(UserComments))
{
JToken addresses;
addresses = JObject.Parse(UserComments).GetValue("CarbonCopy"); //errors here
if (!ReferenceEquals(null, addresses))
{
//stuff
}
}
Um festzustellen, dass es keine unbeabsichtigten Zeichen nach dem json schließt, ist hier die sql:
UPDATE dbo.[Order] SET UserComments = '[{"Imported": "This registration imported on: 06/20/2016"},{"ContactInfoUpdated": " Street Address2: Suite 222 to Shipping Address2: "}]' WHERE idOrder =121050
Ihre JSON * ist * gültig, stellt jedoch ein Array aus zwei Objekten dar, kein einzelnes Objekt. Folglich kann 'JObject.Parse' nicht zum Parsen verwendet werden. Verwenden Sie stattdessen 'JArray.Parse' oder' JToken.Parse'. Sie müssen wahrscheinlich auch andere Anpassungen an Ihrem Code vornehmen. es scheint, als ob Sie ein einzelnes Objekt erwarten, das einen Wert namens "CarbonCopy" enthält, aber Sie haben zwei Objekte und keines hat diese Eigenschaft. Es ist nicht ganz klar aus Ihrer Frage, was Sie hier wirklich machen wollen. –
Nur wirklich versuchen, diesen Fehler zu vermeiden - schätzen Sie die Umleitung. – justSteve