如何将对象序列化为Json,并在桌面C#应用程序中添加对象类的根名称?
假设我有这个目标:如何将对象序列化为Json,并在桌面C#应用程序中添加对象类的根名称?,c#,.net,json,C#,.net,Json,假设我有这个目标: var user = new User() { name = "John" }; 当我尝试使用以下代码将此对象作为Json发送到web服务器时: HttpResponseMessage response = await client.PostAsJsonAsync(url, user); 这是发送的json: {name:"John"} 我想插入一个根节点。Json应该如下所示: {user:{name:"John"} 我找到了一个解决方案,但它只适用于web应用
var user = new User() { name = "John" };
当我尝试使用以下代码将此对象作为Json发送到web服务器时:
HttpResponseMessage response = await client.PostAsJsonAsync(url, user);
这是发送的json:
{name:"John"}
我想插入一个根节点。Json应该如下所示:
{user:{name:"John"}
我找到了一个解决方案,但它只适用于web应用程序。对桌面应用有什么想法吗?使用匿名对象包装您的用户对象,例如
var userObj = new User() { name = "John" };
client.PostAsJsonAsync(url, new { user = userObj });
詹姆斯:你的方法很有效。但仍然不是最好的,因为每次调用该方法时,我都必须指定根的名称,这是一个缺点,会影响我的工作。你还有其他想法吗?@RazvanFlorea如果你愿意的话,你可以创建一个包装器类,但我想说的是,你并没有得到太多。为什么这段代码会出现这么大的问题?例如,如果我想创建一个方法,将要发送的对象和url(将被调用以发送不同对象的方法)作为参数,那么,可能我必须再提供一个参数,即根的名称,这似乎不是很优雅。我正在考虑一个解决方案,它利用发送的对象。在这里,您可以看到ASP.NET应用程序的解决方案: