版权声明:本文为博主原创文章,未经博主允许不得转载。 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 = "" });
}
}