gpt4 book ai didi

c# - Json Deserializer 读取对象到数组

转载 作者:行者123 更新时间:2023-11-30 21:05:50 31 4
gpt4 key购买 nike

我正在编写反序列化器回调方法来解析 C# silverlight 中的一些 Json 响应。

但问题是响应是由一堆对象构造的,而不是数组形式。

具体来说,通常当我们想从 json 中解析某些东西时,如果那是一个对象列表,它在一些 Json 可视化工具中看起来像这样:

Json Array

我们可以这样做:

DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(ObjType[]));
ObjType[] response = (ObjType[])jsonSerializer.ReadObject(stream);

但现在我有了结构如下所示的 Json 文件:

enter image description here

在这种情况下,我不认为我可以将它解析为数组,因为对象是独立的,而不是在数组结构中。

Json 文件的示例是:

[
{
"Name":"Mike",
"Gender":"male",
},
{
"Name":"Lucy",
"Gender":"Female ",
},
{
"Name":"Jack",
"Gender":"Male",
}
]

所以我想知道是否有任何方法可以将这种 Json 文件解析为定义对象的数组。

最佳答案

这对我有用

string json = @"[
{
""Name"":""Mike"",
""Gender"":""male""
},
{
""Name"":""Lucy"",
""Gender"":""Female ""
},
{
""Name"":""Jack"",
""Gender"":""Male""
}
]";
MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(json));

DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(ObjType[]));
ObjType[] response = (ObjType[])jsonSerializer.ReadObject(stream);

-

[DataContract]
public class ObjType
{
[DataMember]
public string Name;
[DataMember]
public string Gender;
}

关于c# - Json Deserializer 读取对象到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11476386/

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