C# 从couchbase视图将JSON对象解析为模型列表
我正在尝试在couchbase中创建mapreduce视图,例如。现在我在couchbase服务器中的视图代码如下所示C# 从couchbase视图将JSON对象解析为模型列表,c#,.net,couchbase,couchbase-view,C#,.net,Couchbase,Couchbase View,我正在尝试在couchbase中创建mapreduce视图,例如。现在我在couchbase服务器中的视图代码如下所示 function(doc, meta) { emit(doc.content,null); } 我在其中发送文档的内容 因此,当我在(result.rows中的var rows)中迭代时,我想将内容(JSON)中的每个值分配给一个模型列表(abc),该列表在类中具有序列号、ULDNAMER和赋值日期的get/set row.key值已更改 {{ "serialNumb
function(doc, meta)
{
emit(doc.content,null);
}
我在其中发送文档的内容
因此,当我在(result.rows中的var rows)
中迭代时,我想将内容(JSON)中的每个值分配给一个模型列表(abc),该列表在类中具有序列号
、ULDNAMER
和赋值日期的get/set
row.key值已更改
{{
"serialNumber": "1",
"uldNumber": "33",
"assignedDate": "2033-02-17T09:10:38"
}}
我的班级看起来像
public class abc
{
//[JsonProperty("serialNumber")]
public string SerialNumber { get; set; }
//[JsonProperty("uldNumber")]
public string UldNumber { get; set; }
//[JsonProperty("assignedDate")]
public DateTime AssignedDate { get; set; }
}
如果我尝试这样反序列化它
JsonSerializer js = new JsonSerializer();
_abcList.Add(js.Deserialize<dynamic[]>(row));
JsonSerializer js=new-JsonSerializer();
_Add(js.Deserialize(row));
我得到“无法从'Couchbase.Views.ViewRow'转换为'Newtonsoft.Json.JsonReader'
如果我要这样做,row.Key.toString()代码>,我得到异常错误的'Newtonsoft.Json.Linq.JObject'
“无法将couchbase.views.viewrow转换为字符串”
我已经查看了和,但这两个都不起作用。当您执行这样的emit语句时:
emit(doc.content, null);
您只是将视图键设为doc.content,并将行数据保留为空。你可以试试这个:
emit(doc.content, doc);
这将使行内容成为文档中的完整数据。或者,您可以使用row.Id获取文档Id,并使用Read(row.Id)读取文档。速度较慢,但视图使用的存储空间较少
此外,通常不会将JSON对象映射放在键中。通常,它要么是一个像数字或字符串这样的单个值,要么是一个值数组。数组更易于用于视图查找