2017-08-18 1 views
1

Ich versuche eine Verbindung mit RouteXL herzustellen, aber in der API-Antwort bekomme ich einen JSON, der vielleicht ungültig ist.Strange Json deserialize

Von der Tag-Route sendet er eine Art Array, beginnend mit einem String-Index. Normalerweise konvertiere ich dies in eine Klasse (http://json2csharp.com), aber mit diesem json bekomme ich eine ungültige Klassenstruktur wegen des String-Index.

Bevor ich gehe, um es selbst zu teilen. Ihr habt eine bessere Lösung?

Mit Grüßen,

SirNirido

json:

{ 
    "id": "6VTa8zH8", 
    "count":5, 
    "feasible":true, 
    "route": { 
     "0": { "name": "StartLocatie", "arrival":0, "distance":0}, 
     "1": { "name": "58", "arrival":28, "distance":47.7}, 
     "2": { "name": "57", "arrival":42, "distance":65.3}, 
     "3": { "name": "56", "arrival":47, "distance":68.5}, 
     "4": { "name": "StartLocatie", "arrival":61, "distance":87.1}}} 
+1

[LINQ to JSON mit Json.net] (https://www.newtonsoft.com/json/help/html/LINQtoJSON.htm)? – crashmstr

+0

Es ist ein gültiger JSON – Hackerman

+2

Versuchen Sie, den 'route' Teil zu einem' Dictionary 'oder einem' Dictionary 'zu deserialisieren. Ich bin sicher, das ist irgendwo ein Duplikat ... –

Antwort

0

Dank @JonSkeet es funktioniert wie ein Charme.

Es ist eine harte für Google. Aber wenn jemand jemals die sameproblem hier haben, ist meine neue Klasse Schema

class Results 
    { 
     public string id { get; set; } 
     public int count { get; set; } 
     public bool feasible { get; set; } 
     public Dictionary<string, RouteResult> route { get; set; } 
    } 
    public class RouteResult 
    { 
     public string index { get; set; } 
     public string name { get; set; } 
     public int arrival { get; set; } 
     public double distance { get; set; } 
    }