c# - 如何从 json 数组创建列表集合?

标签 c# json asp.net-mvc-4

[{prodId:'10',qnty:'12',total:'1200'}, 
{prodId:'11',qnty:'2',total:'10'}, 
{prodId:'4',qnty:'10',total:'50'}]

我有以下类(class)

public class ListItem{
    public int prodID {get;set;}
    public int qnty {get;set;}
    public decimal total {get;set;}
}

上面的 json 数组将从 ajax 调用发送到 action 方法。在操作方法中,我需要构建一个 List<ListItem>从 json 数组中收集。我该怎么做?

更新 这是 Controller

public class ShoppingCartController : Controller
{

    public JsonResult AddToShoppingCart(string  jsonString)
    {
        int carId = 0;

        string[] str=  jsonString.Split(',');

        for (int i = 0; i < str.Length; i++)
        {
            if (str[i] == "cartId")
            {
                string tmp = str[i].Split(':').LastOrDefault();
                carId = int.Parse(tmp);

                if (carId == -1)
                {
                    //create new cart
                }
                else { 

                }
            }
        }
    }

这是ajax:

  $('#addToCartForm #add').on('click', function () {
                   $.ajax({
                        url: 'ShoppingCart/AddToShoppingCart',
                        method: 'post',
                        data: JSON.stringify(item),
                        dataType: 'json',
                        success: function (data) {

                        },
                        error: function (jqXHR, textStatus, errorThrown) {

                        }
                    });
                });

最佳答案

将您的 POST 方法更改为

public JsonResult AddToShoppingCart(List<ListItem> model)

和脚本

 $('#addToCartForm #add').on('click', function () {
     $.ajax({
         url: '@Url.Action("AddToShoppingCart", "ShoppingCart")', // don't hard code
         method: 'post',
         data: JSON.stringify({ 'model': item }),
         dataType: 'json',
         contentType: 'application/json; charset=utf-8',
         success: function (data) {
         },
         error: function (jqXHR, textStatus, errorThrown) {
         }
     });
});

假设 item 是您显示的 javascript 数组。 DefaultModelBinder 将正确绑定(bind)集合

关于c# - 如何从 json 数组创建列表集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34378490/

相关文章:

c# - 使类字段在事后只读

c# - C#计算滚动窗口Max DrawDown

c# - 从 XML 字符串中提取

c# - 包含字段类型的 .net JSON 或 XML 对象序列化和创建

java - 如何在循环中填充 json 数组

ASP.NET MVC 将 JSON 从 Controller 传递给 View

c# - 在 Action Filter onActionExecuting 上重定向时,请求的资源上存在错误 'Access-Control-Allow-Origin' header

c# - 在 C# 中使用 java.util.List 和 IKVM

javascript - 我的 Electron 离线应用程序使用什么数据库

c# - 没有 UI 的独立 Web.API