在<Class> <Class> DocumentDB 中将源响应转换为列表



我正试图将FeedResponse转换为List,但由于字符串引发错误而未能序列化

无法将当前JSON对象(例如{"name":"value"})反序列化为类型"System.Collections.Generic.List`1[Lutran.Api.Models.Infinity]",因为该类型需要JSON数组(例如[1,2,3])才能正确反序列化。要修复此错误,请将JSON更改为JSON数组(例如[1,2,3]),或者更改反序列化的类型,使其成为可以从JSON对象反序列化的普通.NET类型(例如,不是像integer这样的基元类型,也不是像array或List这样的集合类型)。JsonObjectAttribute也可以添加到类型中,以强制它从JSON对象反序列化。路径"token",第1行,位置9。

我使用了使用this链接进行分页的逻辑,并在返回整个输出对象时获取数据,但当我尝试转换它失败时。尝试使用ienumerable对象,但显示类型转换错误。使用了动态对象,但无法从中提取ResponseContinuation值。

使用NewtonSoft转换json(反序列化字符串)

var query = client.CreateDocumentQuery<Document>(collection, options).AsDocumentQuery();
if (query.HasMoreResults)
{
var result = await query.ExecuteNextAsync<LeadDataView>();
objLeadDataView.ResponseContinuation = result.ResponseContinuation;
objLeadDataView.InfinityDataView = JsonConvert.DeserializeObject<List<Infinity>>(result.ToString());
response = objLeadDataView;
}

我搞清楚了

public class LeadDataView
{
public string ResponseContinuation { get; set; }
public FeedResponse<Infinity> InfinityDataView { get; set; }
}
if (query.HasMoreResults)
{
var result = await query.ExecuteNextAsync<Infinity>();
objLeadDataView.ResponseContinuation = result.ResponseContinuation;
objLeadDataView.InfinityDataView = result;
response = objLeadDataView;
}

因此,上面的代码发送了顶部的延续令牌和下面的无穷大类数据。在此处输入图像描述

相关内容

  • 没有找到相关文章

最新更新