2017-02-17 1 views
0

Ich möchte JSON String in Objekt in C# konvertieren. Ich habe mehrere Male mit mehreren Codes versucht, aber es gab mir einen Parsing-Fehler. Siehe unten json.Wie konvertiert man komplexe JSON-String in Objekt C#

{ 
"Test Name1": [{ 
    "scores": [{ 
     "score": "-0.00", 
     "ethnicity": "Asian" 
    }, 
    { 
     "score": "0.00", 
     "ethnicity": "GreaterAfrican" 
    }, 
    { 
     "score": "1.00", 
     "ethnicity": "GreaterEuropean" 
    }], 
    "best": "European" 
}, 
{ 
    "scores": [{ 
     "score": "1.00", 
     "ethnicity": "British" 
    }, 
    { 
     "score": "0.00", 
     "ethnicity": "Jewish" 
    }, 
    { 
     "score": "-0.00", 
     "ethnicity": "WestEuropean" 
    }, 
    { 
     "score": "0.00", 
     "ethnicity": "EastEuropean" 
    }], 
    "best": "British" 
}], 
"Test Name2": [{ 
    "scores": [{ 
     "score": "-0.00", 
     "ethnicity": "Asian" 
    }, 
    { 
     "score": "0.00", 
     "ethnicity": "GreaterAfrican" 
    }, 
    { 
     "score": "1.00", 
     "ethnicity": "GreaterEuropean" 
    }], 
    "best": "GreaterEuropean" 
}, 
{ 
    "scores": [{ 
     "score": "-5.95", 
     "ethnicity": "British" 
    }, 
    { 
     "score": "6.95", 
     "ethnicity": "Jewish" 
    }, 
    { 
     "score": "0.00", 
     "ethnicity": "WestEuropean" 
    }, 
    { 
     "score": "-0.00", 
     "ethnicity": "EastEuropean" 
    }], 
    "best": "Jewish" 
}] 

}

ich mit folgendem Code versuchen.

var Result = client.PostAsync(APIURL, httpContent).Result; 
if(Result.IsSuccessStatusCode) 
    { 
     var responseStr = Result.Content.ReadAsStringAsync();  
        dynamic jsonObject = JsonConvert.DeserializeObject<object>(responseStr.ToString());       
    } 

Aber nicht zu diesem Objekt konvertieren. Wie kann es gemacht werden?

+3

Was ist die Fehlermeldung, die Sie erhalten? – maniak1982

+0

Verwenden Sie Visual Studio? – jcc

+0

Sie müssen den asynchronen Anruf abwarten oder Sie werden die nächste Zeile ausführen, bevor der Inhalt gelesen wird. – Crowcoder

Antwort

2

Sie versuchen, eine "Tostring" -Darstellung einer Aufgabe zu deserialisieren, anstatt den Rückgabewert dieser Aufgabe.

Versuchen Sie folgendes:

if(Result.IsSuccessStatusCode) 
{ 
    var responseStr = await Result.Content.ReadAsStringAsync();  
    dynamic jsonObject = JsonConvert.DeserializeObject<object>(responseStr);       
} 
Verwandte Themen