Ich erhalte eine JSON-Antwort von Dritten, die ich nicht kontrollieren kann. Manchmal wirft diese Antwort unzulässige Zeichen am Ende der Zeichenfolge. Hier ist ein Beispiel für die richtige.Entfernen Sie ein unzulässiges Zeichen aus der JSON-Zeichenfolge vor dem Deserialisieren in C#
{
"result": [
{
"parent": "",
"made_sla": "true",
"caused_by": "",
"watch_list": "",
"upon_reject": "cancel",
"sys_updated_on": "2016-09-13 19:00:01",
"approval_history": "",
"category": "SPIN Station"
}
]
}
Ein Beispiel für eine falsche Zeichenfolge. Hier sieht man endlich, dass es mehr Komma wirft, anstatt zu schließen.
{
"result": [
{
"parent": "",
"made_sla": "true",
"caused_by": "",
"watch_list": "",
"upon_reject": "cancel",
"sys_updated_on": "2016-09-13 19:00:01",
"approval_history": "",
"category": "SPIN Station"
}
],
Hier ist mein Code in C#. Kann mir jemand sagen, wie mit geschweiften Klammer in der Antwort Wert Zeichenfolge in dem folgenden Code vor Deserialisieren
WebRequest req = WebRequest.Create(@"https://aaaa.service-now.com/api/now/table/incident?sysparm_query=sys_updated_onBETWEENjavascript:gs.dateGenerate('2016-09-10','00:00:00')@javascript:gs.dateGenerate('2016-09-13','23:59:59')");
req.Method = "GET";
req.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes("username:Password"));
req.ContentType = "application/xml";
HttpWebResponse resp = req.GetResponse() as HttpWebResponse;
var responseValue = string.Empty;
using (var responseStream = resp.GetResponseStream())
{
if (responseStream != null)
using (var reader = new StreamReader(responseStream))
responseValue = reader.ReadToEnd();
}
JavaScriptSerializer ser = new JavaScriptSerializer();
ser.MaxJsonLength = 2147483647;
ser.RegisterConverters(new List<JavaScriptConverter> { new ResultConverter() });
RootObject ro = ser.Deserialize<RootObject>(responseValue);
Schritt 1 ist es, hart gegen die Firma vorzugehen, die Ihnen schlechte Daten liefert, um ihre Sachen zu reparieren. Wenn sie kein richtiges JSON erstellen, besteht eine gute Chance, dass sie die Zeichenkette manuell erstellen, also werden sie wahrscheinlich auch andere JSON-Regeln vermasseln, die Sie nicht vorhersehen oder umgehen können. –
Sind Sie sicher, dass Sie keine partielle Nachricht erhalten? – Plutonix
Aber dieser Fehler kommt zufällig, manchmal wirft es und manchmal doesnot, ich denke, es ist etwas mit C# als das Unternehmen senden. Wir bekommen 50.000 Datensätze und 85 Felder für jeden Datensatz. –