我已经在我的Web服务中有这些类对象的结构由另一个团队开发。
我需要将JSON数据发布到类CartObject (int CustomerID, List<CartListObject> CartList)
。
这里是CartListObject
内的元素:
public int ItemID { set; get; }
public ItemObject Item { set; get; }
public int Quantity { set; get; }
ItemObject:
public int ID { set; get; }
public string Name { set; get; }
public List<ItemImageObject> ItemGallery { set; get; }
ItemImageObject:
public int ItemID { set; get; }
public string ImageName { set; get; }
我不知道我应该将CartObject
的JSON数据发布到网络服务中。
任何想法都表示赞赏。
答案 0 :(得分:1)
的 jsFiddle Demo
强> 的
基本上你需要设置构造函数来在javascript中创建这些对象。命名必须与完全匹配预期类型,以便数据自动正确绑定。
这意味着在javascript中复制几乎所有模型的设置:
var CartListObject = function(itemId,item,quantity){
this.ItemId = itemId;
this.Item = item;//ItemObject
this.Quantity = quantity;
};
var ItemObject = function(id, name, itemGallery){
this.ID = id;
this.Name = name;
this.ItemGallery = itemGallery;//List<ItemImageObject>
};
var ItemImageObject = function(itemId, imageName){
this.ItemID = itemId;
this.ImageName = imageName;
};
然后使用您的数据(例如假数据)构建它:
var CartList = [];//List<CartListObject>
var someItem = new ItemImageObject(1,"hello");
var someItem2 = new ItemImageObject(2,"world");
var someObj = new ItemObject(1,"holder",[someItem,someItem2]);
var someCart = new CartListObject(1,someObj,4);
CartList.push(someCart);
然后在你的ajax帖子(或普通帖子)中使用它
//post ajax:
//data: { CustomerID: 6, CartList: CartList },
答案 1 :(得分:1)
关于接收端,你的问题很模糊:什么语言/框架/库正在接收JSON?
此外,接收应用程序需要具有类型感知功能并进行适当的转换。 JSON由原始值(对象,数组,数字,字符串)组成,因此ItemObject
,ItemImageObject
等对象将丢失。 JSON也不知道List
严格类型的向量 - 但这些向量将转换为数组。
我确信有更多的方法可以做到这一点,但这将是我的看法(有一些虚假的价值观):
{
"CustomerID": 102,
"CartList": [
{
"ItemID": 1,
"Item": {
"ID": 4242,
"Name": "Lorem Ipsum",
"ItemGallery": [
{
"ItemID": 55,
"ImageName": "Dolor Sit"
},
{
"ItemID": 56,
"ImageName": "Amet Palor"
}
]
},
"Quantity": 12
},
{
"ItemID": 2,
"Item": {
"ID": 5656,
"Name": "Edipiscing Elit",
"ItemGallery": [
{
"ItemID": 62,
"ImageName": "Tellus Eros"
},
{
"ItemID": 63,
"ImageName": "Velit Nec"
}
]
},
"Quantity": 13
}
]
}