gpt4 book ai didi

c# - 使用 DataContractJsonSerializer 反序列化一个简单的 JSON 数组

转载 作者:可可西里 更新时间:2023-11-01 08:05:34 24 4
gpt4 key购买 nike

我敢肯定这个问题已经被问了一遍又一遍,但出于某种原因,我仍然无法让它发挥作用。

我想反序列化一个包含单个成员的 JSON 对象;字符串数组:

{"results" : ["a", "b"]}

这是我要反序列化的类:

public class Whatever {
[DataMember(Name = "results")]
public string[] Results { get; protected set; }
}

这是反序列化方法:

private static T Deserialize<T>(string json)
{
var instance = Activator.CreateInstance<T>();
using (var ms = new MemoryStream(Encoding.Unicode.GetBytes(json)))
{
var serializer = new DataContractJsonSerializer(instance.GetType());
return (T)serializer.ReadObject(ms);
}
}

Deserialize<Whatever>("{\"results\" : [\"a\", \"b\"]}")这样的电话正在返回 Whatever 的初始化实例但是 Results数组留null .

是不是Whatever的结构有问题? ?

最佳答案

啊,在发布这个之后我意识到我在 Whatever 上缺少 DataContract 属性修饰:

[DataContract]
public class Whatever {
[DataMember(Name = "results")]
public string[] Results { get; protected set; }
}

现在它工作正常。

关于c# - 使用 DataContractJsonSerializer 反序列化一个简单的 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8204320/

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