C# JsonConvert无法使用括号正确序列化

C# JsonConvert无法使用括号正确序列化,c#,json,jsonconvert,mailchimp-api-v3,C#,Json,Jsonconvert,Mailchimp Api V3,我试图将两个字段和一个包含两个字段的捆绑对象发布到Mailchimp的API端点 var store_id = ConfigurationManager.AppSettings["MailChimpStoreID"]; var method = String.Format("ecommerce/stores/{0}/products?", store_id); var id = &qu

我试图将两个字段和一个包含两个字段的捆绑对象发布到Mailchimp的API端点

            var store_id = ConfigurationManager.AppSettings["MailChimpStoreID"];
            var method = String.Format("ecommerce/stores/{0}/products?", store_id);
            var id = "id123";
            var title = "testproduct";
            //var variants = new {id, title };

            var productData = new { id, title, variants = new { id, title } };

            var requestJson = JsonConvert.SerializeObject(productData);
当我发布数据并对代码进行try-catch检查时,我看到requestJson返回以下内容:

    {
        "id":"id123",
        "title":"testproduct",
        "variants":{"id":"id123","title":"testproduct"}
    }
知道问题是,序列化后的变量没有返回为
“variants”:[{“foo”:bar}]
,但我如何解决它,以便我的代码将其正确绑定为对象


第二个理论:因为C#是一个强类型的面向对象程序,我需要用get:set定义上面的对象,然后将它们调用到我的函数中吗?

你应该这样写

var productData = new { id, title, variants = new[] {new { id, title }} };
Console.WriteLine(JsonConvert.SerializeObject(productData));

//Prints:
{"id":1,"title":"sodijf","variants":[{"id":1,"title":"sodijf"}]}
您也可以使用
动态
对象
作为列表类型

var productData = new { id, title, variants = new List<object>() {new { id, title }} };
var productData=new{id,title,variants=new List(){new{id,title}};

如果您希望[]将其列为一个列表,您是否希望它成为“变体”:[{“foo”:bar}]?如果是这样,请执行类似于
var productData=new{id,title,variants=new[]{new{id,title}}}的操作。括号表示一个集合(/array)。要获得它们,您需要一个对象集合或数组(这是
new[]{}
提供给您的。谢谢大家,谢谢Jawad。类似的列表嵌套非常混乱。