Десериализация SFDC REST сервисов JSON resopnse

Получение следующего ответа от SFDC REST Web Service (строка jsonResponse ниже):

{
    "responseDataList": [{
        "salesforceRecordId": "a00C000000L5DQRIA3",
        "recordName": "Computer_Name_2",
        "IsSuccess": true,
        "errorMessage": null
    }]
}

Попытка десериализации с помощью ServiceStack.JsonSerializer:

    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    string jsonResponse = new StreamReader(response.GetResponseStream()).ReadToEnd();
    ResponseDataList list = JsonSerializer.DeserializeFromString<ResponseDataList>(jsonResponse);

ResponseDataList имеет следующую структуру:

public class ResponseData
{
    public string salesforceRecordId { get; set; }
    public string recordName { get; set; }
    public bool IsSuccess { get; set; }
    public string errorMessage { get; set; }
}

public class ResponseDataList 
{
    List<ResponseData> responseDataList { get; set; }
}

Однако после десериализации список ResponseDataList равен нулю. Что я делаю не так, как правильно десериализовать?

2 ответа

Решение

Обнародовав responseDataList, я смог правильно десериализоваться.

public class ResponseDataList 
{
    public List<ResponseData> responseDataList { get; set; }
}

Если вы открыты для использования Json.NET для десериализации вместо Service Stack, вы можете легко сделать это следующим образом без необходимости DataResponseList учебный класс:

var client = new WebClient();
var json = client.DownloadString("url");
IList<ResponseData> data = JsonConvert.DeserializeObject<List<ResponseData>>(json);
Другие вопросы по тегам