2017-02-17 1 views
0

Я хочу преобразовать Json String в Object в C#. Я несколько раз пытался использовать несколько кодов, но это дало мне ошибку синтаксического анализа. См. Ниже json.Как преобразовать сложную строку json в объект 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" 
}] 

}

Я пытаюсь с ниже код.

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

Невозможно преобразовать это в объект. Как это можно сделать?

+3

Что сообщение об ошибке, что вы получите? – maniak1982

+0

Вы используете Visual Studio? – jcc

+0

Вы должны дождаться асинхронного вызова или вы запустите следующую строку перед чтением содержимого. – Crowcoder

ответ

2

Вы пытаетесь десериализовать представление «tostring» задачи, а не возвращаемое значение этой задачи.

Попробуйте это:

if(Result.IsSuccessStatusCode) 
{ 
    var responseStr = await Result.Content.ReadAsStringAsync();  
    dynamic jsonObject = JsonConvert.DeserializeObject<object>(responseStr);       
} 
Смежные вопросы