Я пытаюсь десериализовать JSON ответ от CouchBase. Однако десериализация создает исключение.
IQueryRequest queryRequest = QueryRequest.Create(queryString);
queryRequest.ScanConsistency(ScanConsistency.RequestPlus);
var queryResult = await bucket.QueryAsync<dynamic>(queryRequest);
if (!queryResult.Success)
{
}
foreach (var row in queryResult.Rows)
{
try
{
var registrationDetails = JsonConvert.DeserializeObject<IEnumerable<RegistrationModel>>(row);
//var registrationDetail1 = JsonConvert.DeserializeObject<RegistrationModel>(row);
}
catch (Exception Ex)
{ }
}
Исключение, которое я получаю:
{Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: The best overloaded method match for 'Newtonsoft.Json.JsonConvert.DeserializeObject<System.Collections.Generic.IEnumerable<MC4B_CommonInterface.RegistrationModel>>(string)' has some invalid arguments
at CallSite.Target(Closure , CallSite , Type , Object )
at System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1)
at DataAccess.Services.RegistrationDataServices.ActivateSimpleRegistrations(ActivateRequest request) ...}
Ответ от Couchbase прост. RegistrationModel
имеет все атрибуты JsonProperty
.
[
{
"acsPntDocId": "",
"adLis": "[]",
"adP2DNa": "CA",
.....
}
]
Одна вещь, которую я заметил, это foreach (var row in queryResult.Rows)
, row
содержит {{"acsPntDocId":"","adLis": "[]", ...}}