【笔记分享】快速构建WebApi的Json格式数据来实现保存,查看,提交,审核...原创
8人赞赏了该文章
1,517次浏览
编辑于2020年09月29日 17:57:08
在调用WebApi接口时,往往需要构建JObject来实现业务操作(保存,查看,删除...),最近了解到可以动态获取到 WebApi的Json数据。代码由下: // 获取保存Json var saveStr = BuildUploadObj(); // 转成JObject var saveObj = JObject.Parse(saveStr); // 获取Model var modelObj = saveObj["Model"]; // 设值 modelObj["FNumber"] = "testNumber"; modelObj["FName"] = "testName"; var client = new K3CloudApiClient("http://127.0.0.1/K3Cloud/"); var loginResult = client.ValidateLogin("123456", "Administrator", "888888", 2052); var resultType = JObject.Parse(loginResult)["LoginResultType"].Value<int>(); if (resultType == 1) { client.Save("BD_MATERIAL", saveObj.ToString()); } // 获取Json的方法类 private static string BuildUploadObj() { // SaveDesigner为保存操作的设计组件,其他操作请查询T_MDL_FormOperationType 表格 var designerClass = "Kingdee.BOS.Bill.OperationService.SaveDesign,Kingdee.BOS.Business.Bill"; var designType = TypesContainer.GetOrRegister(designerClass); var designer = Activator.CreateInstance(designType) as OperationWebServiceDesigner; designer.OperationId = "Save"; designer.IsWebApi = true; var meta = FormMetaDataCache.GetCachedFormMetaData(new Context(), "BD_MATERIAL"); var model = designer.CreateServiceModel(new Context(), meta, null) as FormServiceModel; // WebApiParamHelper 为内部封装WebApi帮助类,没有对外发布,需要用发射调用获取JSON var webApiHelperClass = "Kingdee.BOS.Business.PlugIn.DynamicService.WebApiParamHelper,Kingdee.BOS.Business.PlugIn"; var webApiHelperType = TypesContainer.GetOrRegister(webApiHelperClass); var webApiHelper = Activator.CreateInstance(webApiHelperType); var getJsonData = webApiHelperType.GetMethod("GetJSONData", new Type[] {typeof(DTOType), typeof(Boolean)}); return getJsonData?.Invoke(webApiHelper, new object[] {model?.RequestDTOType, true}).GetString(); }
赞 8
8人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读