| | |
| | | using WebAPI.Models; |
| | | using WebAPI.Service; |
| | | using WebAPI.Utility; |
| | | using Kingdee.BOS.WebApi.Client; |
| | | using Alex.Kingdee.Cloud.WebAPI.Client; |
| | | |
| | | namespace WebAPI.Controllers |
| | | { |
| | |
| | | #region ç©æåºç¡èµæåæ¥ |
| | | [Route("WEBSController/MaterialDataToLocalByKDWebApi")] |
| | | [HttpGet] |
| | | public object MaterialDataToLocalByKDWebApi(string HDate) |
| | | public object MaterialDataToLocalByKDWebApi(string HDate,int limit) |
| | | { |
| | | bool hasMore = true;//æ¯å¦å¾ªç¯æ¥è¯¢ |
| | | try |
| | | { |
| | | //访é®éè¶ |
| | | ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); |
| | | var loginRet = InvokeHelper.Login(); |
| | | var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value<int>(); |
| | | string sCLOUDUseName = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "UserName"); |
| | | string sCLOUDPsd = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "PassWord"); |
| | | string dbId = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "DbId"); |
| | | ApiClient client = new ApiClient(Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "KDApiUrl")); |
| | | bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); |
| | | string HReturn; |
| | | int startRow = 0;//å页ï¼ä»ç¬¬1æ¡å¼å§æ¥è¯¢ |
| | | List<JObject> allData = new List<JObject>();//æ¥æ¶åå¨æææ¥è¯¢å°çæ°æ® |
| | | |
| | | if (isSuccess == 0) |
| | | if (!bLogin) |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "忥åºç¡èµæå¤±è´¥,éè¶è´¦å·ç»å½å¼å¸¸ã" + loginRet; |
| | | objJsonResult.Message = "忥åºç¡èµæå¤±è´¥,éè¶è´¦å·ç»å½å¼å¸¸ã"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | //è¦éè¿æ¥å£æ¥è¯¢çåæ®µ |
| | | string fieldKeys = "FMATERIALID,FNumber,FName,FSpecification,FFORBIDSTATUS,FErpClsID,FSTOREUNITID,FLENGTH,FWIDTH,FHEIGHT,FNETWEIGHT,FGROSSWEIGHT,FOLDNUMBER,FSTOCKID,FStockPlaceID,FPLANMODE,FCREATORID,FAPPROVERID,FAPPROVEDATE,FMODIFYDATE,FCREATEORGID,FUSEORGID,FISBATCHMANAGE,FCHECKINCOMING,FISENABLE1,FISKFPERIOD,FEXPUNIT,FEXPPERIOD,FAUXUNITID,FSNUNIT,FBASEUNITID,FSALEUNITID,FSALEPRICEUNITID,FPERUNITSTANDHOUR,FSTDLABORPREPARETIME,FSTDMACHINEPREPARETIME,FMASTERID,FMAXPOQTY,FMINPOQTY,FMATERIALGROUP"; |
| | | |
| | | //è°ç¨åæ®æ¥è¯¢webapi |
| | | string sJson = $"{{\"FormId\":\"BD_MATERIAL\",\"FieldKeys\":\"FMATERIALID,FNumber,FName,FSpecification,FApproveDate,FCreateDate,FDocumentStatus\",\"FilterString\":\"FApproveDate >= '2025-04-01T00:00:00' AND FApproveDate <= '2025-04-30T23:59:59'\",\"Limit\":100,\"StartRow\":0,\"TopRowCount\":0}}"; |
| | | oCn.BeginTran();//å¼å§äºå¡ |
| | | |
| | | var result = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery.common.kdsvc", new object[] { "BD_MATERIAL", sJson }); |
| | | |
| | | var _saveObj = JObject.Parse(result); |
| | | |
| | | //å¤ææ°æ®æ¯å¦è·åæå |
| | | if (_saveObj.SelectToken("Result.ResponseStatus.IsSuccess")?.ToString().ToUpper() != "TRUE") |
| | | while (hasMore) //循ç¯åç»æ¥è¯¢ï¼é¿å
æ¼åæ¥ |
| | | { |
| | | HReturn = result.ToString(); |
| | | //ååºååjsonæ°æ® |
| | | var retModel = JsonConvert.DeserializeObject<KingdeeResponse>(HReturn); |
| | | //æ¥æ¶éè¶æ¥éä¿¡æ¯ |
| | | var strErrorMsg = string.Empty; |
| | | //éåè·åæ¥éä¿¡æ¯ |
| | | foreach (var item in retModel.Result.ResponseStatus.Errors) |
| | | { |
| | | strErrorMsg += item.Message + "\r\n"; |
| | | }; |
| | | //æ¼æ¥åæ®æ¥è¯¢æ¥å£åæ° |
| | | string sJson = $"{{\"FormId\":\"BD_MATERIAL\",\"FieldKeys\":\"{fieldKeys}\",\"FilterString\":\"FApproveDate >= '{HDate}' and FLOCALEID = 2052\",\"Limit\":{limit},\"StartRow\":{startRow},\"TopRowCount\":0}}"; |
| | | |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "åæ®æ¥è¯¢ç©æä¿¡æ¯å¤±è´¥ï¼" + strErrorMsg; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | else |
| | | { |
| | | //ä¸»è¡¨æ°æ®èµå¼ |
| | | var MainData = new |
| | | { |
| | | HInterID = _saveObj.SelectToken("Result.Result.Id")?.ToString() ?? "0", |
| | | HDate = _saveObj.SelectToken("Result.Result.Date")?.ToString(), |
| | | HBillNo = _saveObj.SelectToken("Result.Result.BillNo")?.ToString() ?? "", |
| | | HBillStatus = _saveObj.SelectToken("Result.Result.ApproverId_Id")?.ToString() == "0" ? 1 : 2, |
| | | HPURCHASERNumber = _saveObj.SelectToken("Result.Result.PurchaserId.Number")?.ToString() ?? "", |
| | | HMaker = _saveObj.SelectToken("Result.Result.CreatorId.Name")?.ToString() ?? "", |
| | | HChecker = _saveObj.SelectToken("Result.Result.ApproverId.Name")?.ToString() ?? "", |
| | | HUpDater = _saveObj.SelectToken("Result.Result.ModifierId.Name")?.ToString() ?? "", |
| | | HDeleteMan = _saveObj.SelectToken("Result.Result.CancellerId.Name")?.ToString() ?? "", |
| | | HCloseMan = _saveObj.SelectToken("Result.Result.CloserId.Name")?.ToString() ?? "", |
| | | HPURCHASERGROUPNumber = _saveObj.SelectToken("Result.Result.PurchaserGroupId.Number")?.ToString() ?? "", |
| | | HPROVIDERCONTACTNumber = _saveObj.SelectToken("Result.Result.ProviderContactId.CONTACTNUMBER")?.ToString() ?? "", |
| | | HSETTLEMODEID = _saveObj.SelectToken("Result.Result.POOrderFinance[0].SettleModeId_Id")?.ToString() ?? "0", |
| | | HSETTLEMODENumber = _saveObj.SelectToken("Result.Result.POOrderFinance[0].SettleModeId.Number")?.ToString() ?? "", |
| | | HSETTLECURRID = _saveObj.SelectToken("Result.Result.POOrderFinance[0].SettleCurrId_Id")?.ToString() ?? "0", |
| | | HSETTLECURRNumber = _saveObj.SelectToken("Result.Result.POOrderFinance[0].SettleCurrId.Number")?.ToString() ?? "", |
| | | HEXCHANGETYPEID = _saveObj.SelectToken("Result.Result.POOrderFinance[0].ExchangeTypeId_Id")?.ToString() ?? "0", |
| | | HEXCHANGETYPENumber = _saveObj.SelectToken("Result.Result.POOrderFinance[0].ExchangeTypeId.Number")?.ToString() ?? "", |
| | | HPAYCONDITIONID = _saveObj.SelectToken("Result.Result.POOrderFinance[0].PayConditionId_Id")?.ToString() ?? "0", |
| | | HPAYCONDITIONNumber = _saveObj.SelectToken("Result.Result.POOrderFinance[0].PayConditionId.Number")?.ToString() ?? "", |
| | | HEXCHANGERATE = _saveObj.SelectToken("Result.Result.POOrderFinance[0].ExchangeRate")?.ToString() ?? "0", |
| | | HLOCALCURRID = _saveObj.SelectToken("Result.Result.POOrderFinance[0].LocalCurrId_Id")?.ToString() ?? "0", |
| | | HLOCALCURRNumber = _saveObj.SelectToken("Result.Result.POOrderFinance[0].LocalCurrId.Number")?.ToString() ?? "", |
| | | HISINCLUDEDTAX = _saveObj.SelectToken("Result.Result.POOrderFinance[0].IsIncludedTax")?.ToString().ToUpper() == "TRUE" ? 1 : 0, |
| | | HISPRICEEXCLUDETAX = _saveObj.SelectToken("Result.Result.POOrderFinance[0].FISPRICEEXCLUDETAX")?.ToString().ToUpper() == "TRUE" ? 1 : 0, |
| | | }; |
| | | //è°ç¨éè¶webapiåæ®æ¥è¯¢æ¥å£ |
| | | var HReurnData = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery", |
| | | new object[] { sJson }); |
| | | |
| | | //æ ¹æ®åæ®å·ãåæ®IDï¼å 餿¬å°æ°æ® |
| | | oCn.RunProc("Delete from Cg_POOrderBillMain where HBillNo='" + MainData.HBillNo + "'", ref DBUtility.ClsPub.sExeReturnInfo); |
| | | oCn.RunProc("Delete from Cg_POOrderBillMain where HInterID=" + MainData.HInterID.ToString(), ref DBUtility.ClsPub.sExeReturnInfo); |
| | | oCn.RunProc("Delete from Cg_POOrderBillSub where HInterID=" + MainData.HInterID.ToString(), ref DBUtility.ClsPub.sExeReturnInfo); |
| | | |
| | | //åè¡¨æ°æ®èµå¼ |
| | | var dataArr = _saveObj.SelectToken("Result.Result.POOrderEntry") as JArray; |
| | | //å°éè¶åæ®æ¥è¯¢WEBAPIæ¥å£è¿åç纯æ°ç»è½¬æ¢ä¸ºå¸¦å段åç对象å表 |
| | | JArray formattedData = ConvertKingdeeResultToObjects(HReurnData, fieldKeys); |
| | | |
| | | if (dataArr != null) |
| | | if (formattedData.Count < limit) |
| | | { |
| | | foreach (var oSub in dataArr) |
| | | { |
| | | var SubData = new |
| | | { |
| | | HInterID = _saveObj.SelectToken("Result.Result.Id")?.ToString() ?? "0", |
| | | HEntryID = oSub.SelectToken("Id")?.ToString() ?? "0", |
| | | HMaterID = oSub.SelectToken("MaterialId_Id")?.ToString() ?? "0", |
| | | HUnitID = oSub.SelectToken("UnitId_Id")?.ToString() ?? "0", |
| | | HQty = oSub.SelectToken("Qty")?.ToString() ?? "0", |
| | | HPrice = oSub.SelectToken("Price")?.ToString() ?? "0", |
| | | HTaxPrice = oSub.SelectToken("TaxPrice")?.ToString() ?? "0", |
| | | HDiscountRate = oSub.SelectToken("DiscountRate")?.ToString() ?? "0", |
| | | HMoney = oSub.SelectToken("Amount")?.ToString() ?? "0", |
| | | HTaxRate = oSub.SelectToken("TaxRate")?.ToString() ?? "0", |
| | | HTaxMoney = oSub.SelectToken("TaxAmount")?.ToString() ?? "0", |
| | | HDate = oSub.SelectToken("DeliveryDate")?.ToString() ?? "", |
| | | HRemark = oSub.SelectToken("Note")?.ToString() ?? "", |
| | | HRelationQty = oSub.SelectToken("JOINQTY")?.ToString() ?? "0", |
| | | HBackRelationQty = oSub.SelectToken("STOCKRETQTY")?.ToString() ?? "0", |
| | | HPropertyID = oSub.SelectToken("AuxPropId_Id")?.ToString() ?? "0", |
| | | HBatChNo = oSub.SelectToken("FLot_Text")?.ToString() ?? "", |
| | | HAuxPropID = oSub.SelectToken("AuxPropId_Id")?.ToString() ?? "0", |
| | | HMTONo = oSub.SelectToken("MtoNo")?.ToString() ?? "", |
| | | HERPInterID = _saveObj.SelectToken("Result.Result.Id")?.ToString() ?? "0", |
| | | HERPEntryID = oSub.SelectToken("Id")?.ToString() ?? "0", |
| | | HSEQ = oSub.SelectToken("Seq")?.ToString() ?? "0", |
| | | HRECEIVEDEPTID = oSub.SelectToken("ReceiveDeptId_Id")?.ToString() ?? "0", |
| | | HSUPPLIERLOT = oSub.SelectToken("SupplierLot")?.ToString() ?? "", |
| | | HBOMID = oSub.SelectToken("BomId_Id")?.ToString() ?? "0", |
| | | HBomNumber = oSub.SelectToken("BomId.Number")?.ToString() ?? "", |
| | | HSTOCKUNITID = oSub.SelectToken("StockUnitID_Id")?.ToString() ?? "0", |
| | | HBASEUNITID = oSub.SelectToken("BaseUnitId_Id")?.ToString() ?? "0", |
| | | HBFLOWID = oSub.SelectToken("FBFLowId_Id")?.ToString() ?? "", |
| | | HGIVEAWAY = oSub.SelectToken("GiveAway")?.ToString().ToUpper() == "TRUE" ? 1 : 0, |
| | | HROWTYPE = oSub.SelectToken("RowType")?.ToString() ?? "", |
| | | HBASEUNITQTY = oSub.SelectToken("BaseUnitQty")?.ToString() ?? "0", |
| | | HSTOCKBASEQTY = oSub.SelectToken("StockBaseQty")?.ToString() ?? "0", |
| | | HREQTRACENO = oSub.SelectToken("ReqTraceNo")?.ToString() ?? "", |
| | | HMATERIALDESC = oSub.SelectToken("MaterialDesc[0].Value")?.ToString() ?? "", |
| | | HRECEIVEORGID = oSub.SelectToken("ReceiveOrgId_Id")?.ToString() ?? "0", |
| | | HREQUIREORGID = oSub.SelectToken("RequireOrgId_Id")?.ToString() ?? "0", |
| | | HTAXNETPRICE = oSub.SelectToken("TaxNetPrice")?.ToString() ?? "0", |
| | | HPRICECOEFFICIENT = oSub.SelectToken("PriceCoefficient")?.ToString() ?? "0", |
| | | HTAXCOMBINATION = oSub.SelectToken("FTaxCombination_Id")?.ToString() ?? "0", |
| | | HTAXCOMBINATIONNumber = oSub.SelectToken("FTaxCombination.Number")?.ToString() ?? "", |
| | | HPRICEUNITID = oSub.SelectToken("PriceUnitId_Id")?.ToString() ?? "0", |
| | | HPRICELISTENTRY = oSub.SelectToken("PriceListEntry_Id")?.ToString() ?? "0", |
| | | HPRICELISTENTRYNumber = oSub.SelectToken("PriceListEntry.Number")?.ToString() ?? "", |
| | | HPAYORGID = oSub.SelectToken("PayOrgId_Id")?.ToString() ?? "0", |
| | | HSETTLEORGID = oSub.SelectToken("SettleOrgId_Id")?.ToString() ?? "0", |
| | | HTaxRate_TAX = oSub.SelectToken("POORDERENTRY_TAX[0].TaxRate")?.ToString() ?? "0", |
| | | HTaxMoney_TAX = oSub.SelectToken("POORDERENTRY_TAX[0].TaxAmount")?.ToString() ?? "0", |
| | | HTAXRATEID = oSub.SelectToken("POORDERENTRY_TAX[0].TaxRateId_Id")?.ToString() ?? "0", |
| | | HTAXRATENumber = oSub.SelectToken("POORDERENTRY_TAX[0].TaxRateId.Number")?.ToString() ?? "", |
| | | HCOSTPERCENT = oSub.SelectToken("POORDERENTRY_TAX[0].CostPercent")?.ToString() ?? "0", |
| | | HCOSTAMOUNT = oSub.SelectToken("POORDERENTRY_TAX[0].CostAmount")?.ToString() ?? "0", |
| | | HVAT = oSub.SelectToken("POORDERENTRY_TAX[0].VAT")?.ToString() ?? "", |
| | | HSELLERWITHHOLDING = oSub.SelectToken("POORDERENTRY_TAX[0].SellerWithholding")?.ToString() ?? "", |
| | | HBUYERWITHHOLDING = oSub.SelectToken("POORDERENTRY_TAX[0].BuyerWithholding")?.ToString() ?? "", |
| | | }; |
| | | |
| | | } |
| | | hasMore = false; // å¦ææ¬æ¬¡è¿åçæ°éå°äºè¯·æ±ç limitï¼è¯´æå·²ç»æ¯æåä¸é¡µäº |
| | | } |
| | | else |
| | | { |
| | | startRow += limit; // å¦åï¼å¢å èµ·å§è¡ç´¢å¼ï¼åå¤è¯·æ±ä¸ä¸é¡µ |
| | | } |
| | | |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = "æå"; |
| | | objJsonResult.data = WebSoBar; |
| | | return objJsonResult; |
| | | } |
| | | foreach (JObject item in formattedData) |
| | | { |
| | | //å é¤åæè®°å½ |
| | | oCn.RunProc($"delete from Gy_Material where HItemID = {item["FMATERIALID"]?.ToString()}"); |
| | | |
| | | oCn.RunProc("set identity_insert Gy_Material on"); |
| | | |
| | | //éæ°åå
¥è¡¨ |
| | | oCn.RunProc($"insert into Gy_Material(HItemID,HERPItemID,HNumber,HName,HModel,HShortNumber,HParentID" + |
| | | $", HLevel, HEndFlag, HStopflag, HRemark, HMaterClsID, HUnitID, HUnitGroupID" + |
| | | $", HLength, HWidth, HHeight, HJQty, HMQty, HOldMaterNumber, HBarCodeType" + |
| | | $", HWHID, HSPID, HPlanMode, HUseFlag, HMinPickQty" + |
| | | $", HMakeEmp, HMakeTime, HCheckEmp, HCheckTime, HUpdateTime" + |
| | | $", HCREATEORGID, HUSEORGID, HBatchManager, HCHECKINCOMING" + |
| | | $", HAuxPropFlag, HISKFPERIOD, HEXPUNIT, HEXPPERIOD" + |
| | | $", HAuxUnitID, HSNUnitID, HBASEUNITID, HSALEUNITID, HSALEPRICEUNITID" + |
| | | $", HPERUNITSTANDHOUR, HSTDLABORPREPARETIME, HSTDMACHINEPREPARETIME, HMASTERID" + |
| | | $", HMaxPOQty, HMinPOQty, HMaterTypeID) " + |
| | | $" values ( {item["FMATERIALID"]?.ToString()},{item["FMATERIALID"]?.ToString()},'{item["FNumber"]?.ToString()}','{item["FName"]?.ToString()}','{item["FSpecification"]?.ToString()}'" + |
| | | $",'{item["FNumber"]?.ToString()}',0,1,1,'{(item["FFORBIDSTATUS"]?.ToString() == "A" ? 0 : 1)}','WEBAPI-导å
¥'" + |
| | | $",'{item["FErpClsID"]?.ToString()}','{item["FSTOREUNITID"]?.ToString()}',0,'{item["FLENGTH"]?.ToString()}','{item["FWIDTH"]?.ToString()}','{item["FHEIGHT"]?.ToString()}'" + |
| | | $",'{item["FNETWEIGHT"]?.ToString()}','{item["FGROSSWEIGHT"]?.ToString()}','{item["FOLDNUMBER"]?.ToString()}','','{item["FSTOCKID"]?.ToString()}','{item["FStockPlaceID"]?.ToString()}'" + |
| | | $",'{item["FPLANMODE"]?.ToString()}','æªæ£éª',0,'{item["FCREATORID"]?.ToString()}',getdate(),'{item["FAPPROVERID"]?.ToString()}'" + |
| | | $",'{item["FAPPROVEDATE"]?.ToString()}','{item["FMODIFYDATE"]?.ToString()}','{item["FCREATEORGID"]?.ToString()}','{item["FUSEORGID"]?.ToString()}','{(item["FISBATCHMANAGE"]?.ToString() == "1" ? 1 : 0)}','{(item["FCHECKINCOMING"]?.ToString() == "1" ? 1 : 0)}'" + |
| | | $",'{(item["FISENABLE1"]?.ToString() == "1" ? 1 : 0)}','{(item["FISKFPERIOD"]?.ToString() == "1" ? 1 : 0)}','{item["FEXPUNIT"]?.ToString()}','{item["FEXPPERIOD"]?.ToString()}','{item["FAUXUNITID"]?.ToString()}','{item["FSNUNIT"]?.ToString()}'" + |
| | | $",'{item["FBASEUNITID"]?.ToString()}','{item["FSALEUNITID"]?.ToString()}','{item["FSALEPRICEUNITID"]?.ToString()}','{item["FPERUNITSTANDHOUR"]?.ToString()}','{item["FSTDLABORPREPARETIME"]?.ToString()}','{item["FSTDMACHINEPREPARETIME"]?.ToString()}'" + |
| | | $",'{item["FMASTERID"]?.ToString()}','{item["FMAXPOQTY"]?.ToString()}','{item["FMINPOQTY"]?.ToString()}','{item["FMATERIALGROUP"]?.ToString()}'" + |
| | | $")"); |
| | | |
| | | oCn.RunProc("set identity_insert Gy_Material off"); |
| | | } |
| | | } |
| | | |
| | | oCn.Commit(); //æäº¤äºå¡ |
| | | |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = "ç©æä¿¡æ¯åæ¥æå"; |
| | | objJsonResult.data = ""; |
| | | return objJsonResult; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | hasMore = false; |
| | | oCn.RollBack();//åæ»äºå¡ |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "åæ®æ¥è¯¢ç©æä¿¡æ¯åçå¼å¸¸ï¼" + e.ToString(); |
| | |
| | | |
| | | #endregion |
| | | |
| | | #region å°éè¶åæ®æ¥è¯¢WEBAPIæ¥å£è¿åç纯æ°ç»è½¬æ¢ä¸ºå¸¦å段åç对象å表 |
| | | public static JArray ConvertKingdeeResultToObjects(string rawJson, string fieldKeys) |
| | | { |
| | | // <param name="rawJson">API è¿åçåå§ JSON å符串ï¼å¦ [[...],[...]]ï¼</param> |
| | | // <param name="fieldKeys">æ¥è¯¢æ¶ä¼ å
¥ç FieldKeys å符串ï¼éå·åéï¼</param> |
| | | |
| | | // 1. è§£æåå§æ°æ®ä¸º JArrayï¼äºç»´æ°ç»ï¼ |
| | | JArray rawData = JArray.Parse(rawJson); |
| | | |
| | | // 2. æååæ®µåæ°ç» |
| | | string[] fieldNames = fieldKeys.Split(',') |
| | | .Select(f => f.Trim()) |
| | | .ToArray(); |
| | | |
| | | // 3. åå»ºç»ææ°ç» |
| | | JArray result = new JArray(); |
| | | |
| | | // 4. é忝ä¸è¡æ°æ® |
| | | foreach (JArray row in rawData) |
| | | { |
| | | JObject obj = new JObject(); |
| | | |
| | | // 5. æç´¢å¼ä½ç½®æ å°å段ååå¼ |
| | | for (int i = 0; i < fieldNames.Length && i < row.Count; i++) |
| | | { |
| | | obj[fieldNames[i]] = row[i]; |
| | | } |
| | | |
| | | result.Add(obj); |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | #endregion |
| | | |
| | | #endregion |
| | | } |
| | | } |