我试图拥有一对字符串(键/值),这里(名称/首字母缩略词),并试图循环这5对。
我的jquery ajax就是这个:
var vJson = {
"Guid": "ccda117f-a9b5-4f54-ab4a-07a9cf403ef7",
"Donnees":
{
"Shops":
[
{ "Name": "Shop1", "Acronym": "ACRO1" },
{ "Name": "Shop2", "Acronym": "ACRO2" },
{ "Name": "Shop3", "Acronym": "ACRO3" },
{ "Name": "Shop4", "Acronym": "ACRO4" }
]
}
};
$.ajax({
url:"https://www.mywebsite.net/api/Create",
data: vJson,
type:"POST",
dataType: 'json',
success: function(data) {
console.log(data);
}
}
);
我的c#控制器是
public class ShopController : Controller
{
[HttpPost]
public string Create(message postMessage)
{
string guid = postMessage.Guid;
(...)
}
}
对象是
public class message
{
public string Guid { get; set; }
public shop Shops { get; set; }
}
public class shop
{
public string Name { get; set;}
public string Acronym { get; set;}
}
在控制器中,当我要求guid时,它完美地工作(在代码中)。
但是,我不知道如何创建元素数组[Shop1/ACRO1, Shop2/ACRO2...
]以及如何循环遍历此数组?我试过postMessage.Donnees.Shops[0].Name.ToString
但没有成功。我想我错过了一个对象Shops in my code但是如何将它插入到另一个对象中?
我想在某一点上,我必须创建一个Dictionary对象,但我在哪里以及如何做到这一点?
所以我的主要问题是json中嵌套的对象数组。请问,有人可以把我放在轨道上吗?真的很感激!
答案 0 :(得分:0)
你的json应该像
var vJson = {
"Guid": "ccda117f-a9b5-4f54-ab4a-07a9cf403ef7",
"Shops": [
{ "Name": "Shop1", "Acronym": "ACRO1" },
{ "Name": "Shop2", "Acronym": "ACRO2" },
{ "Name": "Shop3", "Acronym": "ACRO3" },
{ "Name": "Shop4", "Acronym": "ACRO4" }
]
};
并且您的邮件类应该是
public class message
{
public string Guid { get; set; }
public Ilist<shop> Shops { get; set; }
}
然后你可以像
一样循环 foreach(var shop in postmessage.Shops)
{
//some code
}
注意: - 你的命名约定不正确类名应该在Passcal的情况下,如消息应该是消息,在javascript中你应该使用像Guid一样的骆驼案例guid。