C# 将对象解析为JObject
晚上好, 我将尝试将一个对象解析为一个JObject Fiddle演示了我的问题,代码如下:C# 将对象解析为JObject,c#,json,serialization,C#,Json,Serialization,晚上好, 我将尝试将一个对象解析为一个JObject Fiddle演示了我的问题,代码如下: public class User { public int UserId {get;set;} public string Username {get;set;} } public class Program { public static JObject Parameters { set; get; } public static List<User>
public class User
{
public int UserId {get;set;}
public string Username {get;set;}
}
public class Program
{
public static JObject Parameters { set; get; }
public static List<User> Users {get;set;}
public static void Main()
{
Users = new List<User>();
Parameters = new JObject();
Users.Add(new User{UserId=1,Username="First User"});
Users.Add(new User{UserId=2,Username="Second User"});
Parameters.Add("Method", "AddUsers");
Parameters.Add("Users", JArray.FromObject(Users));
Console.WriteLine(Parameters);
}
}
这是我真实问题的简化对象结构。它逃避了我的Json,导致我指出WebRequest由于无效的请求体而失败
如何正确序列化对象
致意
丹尼尔我写完问题后找到了答案 我通过添加如下参数解决了这个问题 Parameters.Add("Users", JProperty.Parse(JsonConvert.SerializeObject(Users))); Parameters.Add(“Users”,JProperty.Parse(jsonvert.SerializeObject(Users));
这回答了你的问题吗。看这里:我更喜欢这个而不是我的实际解决方案。我喜欢表示法
JArray.FromObject(用户)
more,因为它较短。感谢Canton7,它也便宜得多:您没有将对象序列化为字符串,然后将其解析回对象。我认为您真正想要的是参数[“Users”]=Users代码>你也可以创建一个匿名对象并序列化它。谢谢@Llama。谢谢你的回答。我更喜欢从广州来的路
Parameters.Add("Users", JProperty.Parse(JsonConvert.SerializeObject(Users)));