gpt4 book ai didi

c# - 序列化时如何伪造 JSON.NET 中的类型?

转载 作者:行者123 更新时间:2023-11-30 15:41:51 25 4
gpt4 key购买 nike

假设我有

public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string PhoneNumber { get; set; }
}

现在,如果我创建一个匿名类型,例如...

var p = new Person() {FirstName = "bob",
LastName = "builder",
PhoneNumber = "0800 YESWECAN"};

var anon = new {p.FirstName, p.LastName};

对于 JSON.NET,当您拥有 TypeNameHandling = TypeNameHandling.Objects 时,它将序列化(然后用于反序列化)类型。我想要做的是伪造恼人类中的类型,以便在它被序列化时看起来像一个“人”对象。

有没有一个很好的简单方法来做到这一点?

注意:它必须在 json ( $type ) 中包含 Json.Net 类型信息。所以 LBs 的回答并没有解决问题,事实上我可以使用 .net frameworks json 设施来做到这一点。

最佳答案

你可以序列化为

string str = JsonConvert.SerializeObject(new { FirstName = "aaa", LastName = "bbb" })

你会得到一个看起来像 Person 对象的字符串

{"FirstName":"aaa","LastName":"bbb"}

由于 Json 不包含类型信息,您可以将其反序列化回 Person

var person = JsonConvert.DeserializeObject(str, typeof(Person));

关于c# - 序列化时如何伪造 JSON.NET 中的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7959241/

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