C# webapi 解析 json字符串包

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_41600552/article/details/82956751

步骤一:最好是自己创建一个和json包中字段一样的实体类接收数据(推荐),也可以用原有的实体类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace cmxapi.Models
{
    public class FinancialCreditCarApplyModel
    {

        public int BrandID { get; set; }
        public int SeriesID { get; set; }
        public int CarsType { get; set; }
        public int EntId { get; set; }
        public int CrtUser { get; set; }
        public int Status { get; set; }
        public int LineNum { get; set; }
         public DateTime CrtDate { get; set; }

    }
}

步骤二:引用命名空间   using Newtonsoft.Json;   通过 nuget下载

步骤三:使用 该方法 JsonConvert.DeserializeObject(obj) 解析json包数据 里面可以是任何类型的

              用list 集合接收json数组

 List<FinancialCreditCarApplyModel> jobInfoList = JsonConvert.DeserializeObject<List<FinancialCreditCarApplyModel>>(strJson);

步骤四:案例如下   实体类中的参数必须要和json中的字段名一直

 [HttpPost("api/FinancialCreditCarApplyHeader/HeaderAdd")]
        public ActionResult FinancialCreditCarApplyHeaderAdd(string strJson)
        {
            ILog log = LogManager.GetLogger(Startup.repository.Name, "mylog");
            try
            {
              
               
                //string jsonText = "[{'EntId':1,'CrtUser':1020,'BrandID':9,'SeriesID':7,'CarsType':8},{'EntId':1,'CrtUser':1020,'BrandID':9,'SeriesID':7,'CarsType':8}]";

                //反序列化Json数据
               // JsonReader reader = new JsonTextReader(new StringReader(strJson));
                List<FinancialCreditCarApplyModel> jobInfoList = JsonConvert.DeserializeObject<List<FinancialCreditCarApplyModel>>(strJson);

                //主表
                FinancialCreditCarApplyModel hmodel = new FinancialCreditCarApplyModel();
                foreach (var item in jobInfoList)
                {
                    hmodel.CrtDate = DateTime.Now;
                    hmodel.CrtUser = item.CrtUser;
                    hmodel.EntId = item.EntId;
                    hmodel.Status = 0;

                }
                string hjson = JsonConvert.SerializeObject(hmodel);

                //从表
               
                List<FinancialCreditCarApplyModel> LineList = new List<FinancialCreditCarApplyModel>();
                int count = 0;
                foreach (var item in jobInfoList)
                {
                 FinancialCreditCarApplyModel dmodel = new FinancialCreditCarApplyModel();
                    dmodel.BrandID = item.BrandID;
                    dmodel.SeriesID = item.SeriesID;
                    dmodel.CarsType = item.CarsType;
                    dmodel.LineNum = count++;
                    LineList.Add(dmodel);
                }
                string djson = JsonConvert.SerializeObject(LineList);
                DataTable dt = financial.FinancialCreditCarApplyHeaderAdd(hjson, djson).Tables[0];

                if (dt.Rows.Count > 0)
                {
                    //成功                  
                    return Json(new { status = 0, message = "成功", data = dt });

                }
                else
                {
                    return Json(new { status = 1, message = "失败", data = dt });
                }

            }
            catch (Exception ex)
            {

                log.Error("FinancialCreditCarApplyHeader_Apply_GetListByPage] error:" + ex.Message);
                return Json(new { status = -1, message = ex.Message, data = "" });
            }
        }

猜你喜欢

转载自blog.csdn.net/weixin_41600552/article/details/82956751