C# webapi 解析 json字串包
阿新 • • 發佈:2018-12-13
步驟一:最好是自己建立一個和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);
步驟四:案例如下
[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); //從表 FinancialCreditCarApplyModel dmodel = new FinancialCreditCarApplyModel(); List<FinancialCreditCarApplyModel> LineList = new List<FinancialCreditCarApplyModel>(); int count = 0; foreach (var item in jobInfoList) { dmodel.BrandID = item.BrandID; dmodel.SeriesID = item.SeriesID; dmodel.CarsType = item.CarsType; dmodel.LineNum = count++; LineList.Add(dmodel); } string djson = JsonConvert.SerializeObject(dmodel); 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 = "" }); } }