Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将对象解析为JObject_C#_Json_Serialization - Fatal编程技术网

C# 将对象解析为JObject

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>

晚上好,

我将尝试将一个对象解析为一个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> 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)));