C# JsonConvert无法使用括号正确序列化
我试图将两个字段和一个包含两个字段的捆绑对象发布到Mailchimp的API端点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
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。类似的列表嵌套非常混乱。