JsonConvert 无法用括号正确序列化
JsonConvert unable to serialize correctly with brackets
我正在尝试 post 两个字段和一个包含两个字段的捆绑对象到 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);
当我 POST 我的数据并围绕我的代码进行 try-catch 来检查时,我看到我的 requestJson returns 以下内容:
{
"id":"id123",
"title":"testproduct",
"variants":{"id":"id123","title":"testproduct"}
}
我 知道 问题是序列化时的变体没有作为 "variants":[{"foo":bar"}]
返回,但我该如何解决它以便我的代码将其捆绑为一个对象正确吗?
第二种说法:既然C#是强类型的面向对象程序,我是否需要用get:sets定义上面的对象,然后在我的函数中调用它们?
你应该这样写,
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"}]}
您也可以使用 dynamic
或 object
作为列表类型。
var productData = new { id, title, variants = new List<object>() {new { id, title }} };
我正在尝试 post 两个字段和一个包含两个字段的捆绑对象到 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);
当我 POST 我的数据并围绕我的代码进行 try-catch 来检查时,我看到我的 requestJson returns 以下内容:
{
"id":"id123",
"title":"testproduct",
"variants":{"id":"id123","title":"testproduct"}
}
我 知道 问题是序列化时的变体没有作为 "variants":[{"foo":bar"}]
返回,但我该如何解决它以便我的代码将其捆绑为一个对象正确吗?
第二种说法:既然C#是强类型的面向对象程序,我是否需要用get:sets定义上面的对象,然后在我的函数中调用它们?
你应该这样写,
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"}]}
您也可以使用 dynamic
或 object
作为列表类型。
var productData = new { id, title, variants = new List<object>() {new { id, title }} };