gpt4 book ai didi

c# - 将 Linq 结果直接序列化为 JSON

转载 作者:太空狗 更新时间:2023-10-29 23:10:12 27 4
gpt4 key购买 nike

我正在开发一个将 linq 执行到 sql db 并将结果放入 VAR 变量的 Web 服务。然后我想使用 javascript 序列化程序 (c#) 将 VAR 中的结果序列化为 json 格式。像这样:

var sb= from p in ent.people .........
System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(sb.GetType());
MemoryStream ms = new MemoryStream();
serializer.WriteObject(ms, sb);
string json = System.Text.Encoding.Default.GetString(ms.ToArray());

但是我得到这样的错误响应:

Type      'System.Data.Objects.ObjectQuery`1[<>f__AnonymousType2d`5[System.String,System.Nu llable`1[System.Int32],System.Nullable`1[System.Int32],System.Int32,System.String]]' cannot be serialized. 

考虑使用 DataContractAttribute 属性标记它,并使用 DataMemberAttribute 属性标记您想要序列化的所有成员。如果类型是集合,请考虑使用 CollectionDataContractAttribute 对其进行标记。有关其他支持的类型,请参阅 Microsoft .NET Framework 文档。

如何将 LINQ 结果直接序列化为 JSON?非常感谢所有答案!恩里科

最佳答案

DataContractJsonSerializer 不支持匿名对象。如果你想序列化匿名对象,你可以使用 JavaScriptSerializer类:

var sb = from p in ent.people .........
var serializer = new JavaScriptSerializer();
string json = serializer.Serialize(sb);

关于c# - 将 Linq 结果直接序列化为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7811424/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com