c#[WebMethod]方法接收前端传入的JsonArray的方法
一、第一种方法:可以这样接收前端传入的jsonArray字符串到一个类的数组中,然后遍历该数组取值
这种方法需要创建PointConfig类
class PointConfig{public string ptcrossing { get; set; }public string ptcrossingId { get; set; }public string camId { get; set; }public string pointid { get; set; }public string ptdirection { get; set; }public string ptGoSet { get; set; }public string ptGoEn { get; set; }public string ptLeftSet { get; set; }public string ptLeftEn { get; set; }public string ptRightSet { get; set; }public string ptRightEn { get; set; }public string ptname { get; set; }public string ptmainX { get; set; }public string ptmainY { get; set; }public string ptsubX { get; set; }public string ptsubY { get; set; }public string ptframediffX { get; set; }public string ptframediffY { get; set; }public string ptgreenlightX { get; set; }public string ptgreenlightY { get; set; }public string ptredlightX { get; set; }public string ptredlightY { get; set; }public string ptmainvalid { get; set; }public string ptsubvalid { get; set; }public string ptframediffvalid { get; set; }public string ptqueuelengthvalid { get; set; }public string ptcheckmethod { get; set; }public string ptchanneltypeA { get; set; }public string ptchanneltypeB { get; set; }public string cameraName { get; set; }public string xgr { get; set; }}
[WebMethod]public static string checkPointConfigUpdateRecord(string pointObj){PointConfig[] pointConfigs = JsonConvert.DeserializeObject<PointConfig[]>(pointObj);for (int i = 0; i < pointConfigs.Length; i++){string crossingName_str = pointConfigs[i].ptcrossing.Trim();string crossingId_str = pointConfigs[i].ptcrossingId.Trim();string cameraId_str = pointConfigs[i].camId.Trim();string cameraName_str = pointConfigs[i].cameraName.Trim();string dir_str = pointConfigs[i].ptdirection.Trim();string i_go_str = pointConfigs[i].ptGoSet.Trim();string i_left_str = pointConfigs[i].ptLeftSet.Trim();string i_right_str = pointConfigs[i].ptRightSet.Trim();string laneName_str = pointConfigs[i].ptname.Trim();string main_x_str = pointConfigs[i].ptmainX.Trim();string main_y_str = pointConfigs[i].ptmainY.Trim();string mainPointValid_str = pointConfigs[i].ptmainvalid.Trim();string sub_x_str = pointConfigs[i].ptsubX.Trim();string sub_y_str = pointConfigs[i].ptsubY.Trim();string subPointValid_str = pointConfigs[i].ptsubvalid.Trim();string frame_x_str = pointConfigs[i].ptframediffX.Trim();string frame_y_str = pointConfigs[i].ptframediffY.Trim();string frameValid_str = pointConfigs[i].ptframediffvalid.Trim();string green_x_str = pointConfigs[i].ptgreenlightX.Trim();string green_y_str = pointConfigs[i].ptgreenlightY.Trim();string red_x_str = pointConfigs[i].ptredlightX.Trim();string red_y_str = pointConfigs[i].ptredlightY.Trim();string queueValid_str = pointConfigs[i].ptqueuelengthvalid.Trim();string calcMathod_str = pointConfigs[i].ptcheckmethod.Trim();string channelType_A_str = pointConfigs[i].ptchanneltypeA.Trim();string channelTypee_B_str = pointConfigs[i].ptchanneltypeB.Trim();string xgr_str = pointConfigs[i].xgr.Trim();string xgsj_str = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");sb.Append("insert into pointConfig(crossingName,crossingId,cameraId,cameraName,dir,i_go,i_left,i_right,laneName,main_x,main_y,mainPointValid,sub_x,sub_y,subPointValid,frame_x,frame_y,frameValid,green_x,green_y,red_x,red_y,queueValid,calcMathod,channelType_A,channelTypee_B,xgr,xgsj) " +"values('" + crossingName_str + "','" + crossingId_str + "','" + cameraId_str + "','" + cameraName_str + "','" + dir_str + "','" + i_go_str + "','" + i_left_str + "','" +i_right_str + "','" + laneName_str + "','" + main_x_str + "','" + main_y_str + "','" + mainPointValid_str + "','" + sub_x_str + "','" +sub_y_str + "','" + subPointValid_str + "','" + frame_x_str + "','" + frame_y_str + "','" + frameValid_str + "','" + green_x_str + "','" + green_y_str + "','" + red_x_str + "','" + red_y_str + "','" + queueValid_str + "','" + calcMathod_str + "','" +channelType_A_str + "','" + channelTypee_B_str + "','" + xgr_str + "','" + xgsj_str + "');");}}
二、第二种方法:可以这样接收前端传入的jsonArray字符串到一个类的数组中,然后遍历该数组取值
[WebMethod]public static string checkPointConfigUpdateRecord(string pointObj){JavaScriptSerializer serializer = new JavaScriptSerializer();object[] jsonArray = (object[])serializer.DeserializeObject(pointObj);StringBuilder sb = new StringBuilder();if (jsonArray.Length<1){return "{\"result\":false}";}for(int i = 0; i < jsonArray.Length; i++){object pointConfig = jsonArray[i];// 然后将该元素转换为JSON对象string json1 = serializer.Serialize(pointConfig);Dictionary<string, object> json = (Dictionary<string, object>)serializer.DeserializeObject(json1);string crossingName_str = json["ptcrossing"].ToString().Trim();string crossingId_str = json["ptcrossingId"].ToString().Trim();string cameraId_str = json["camId"].ToString().Trim();string cameraName_str = json["cameraName"].ToString().Trim();string dir_str = json["ptdirection"].ToString().Trim();string i_go_str = json["ptGoSet"].ToString().Trim();string i_left_str = json["ptLeftSet"].ToString().Trim();string i_right_str = json["ptRightSet"].ToString().Trim();string laneName_str = json["ptname"].ToString().Trim();string main_x_str = json["ptmainX"].ToString().Trim();string main_y_str = json["ptmainY"].ToString().Trim();string mainPointValid_str = json["ptmainvalid"].ToString().Trim();string sub_x_str = json["ptsubX"].ToString().Trim();string sub_y_str = json["ptsubY"].ToString().Trim();string subPointValid_str = json["ptsubvalid"].ToString().Trim();string frame_x_str = json["ptframediffX"].ToString().Trim();string frame_y_str = json["ptframediffY"].ToString().Trim();string frameValid_str = json["ptframediffvalid"].ToString().Trim();string green_x_str = json["ptgreenlightX"].ToString().Trim();string green_y_str = json["ptgreenlightY"].ToString().Trim();string red_x_str = json["ptredlightX"].ToString().Trim();string red_y_str = json["ptredlightY"].ToString().Trim();string queueValid_str = json["ptqueuelengthvalid"].ToString().Trim();string calcMathod_str = json["ptcheckmethod"].ToString().Trim();string channelType_A_str = json["ptchanneltypeA"].ToString().Trim();string channelTypee_B_str = json["ptchanneltypeB"].ToString().Trim();string xgr_str = json["xgr"].ToString().Trim();string xgsj_str = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");sb.Append("insert into pointConfig(crossingName,crossingId,cameraId,cameraName,dir,i_go,i_left,i_right,laneName,main_x,main_y,mainPointValid,sub_x,sub_y,subPointValid,frame_x,frame_y,frameValid,green_x,green_y,red_x,red_y,queueValid,calcMathod,channelType_A,channelTypee_B,xgr,xgsj) " +"values('" + crossingName_str + "','" + crossingId_str + "','" + cameraId_str + "','" + cameraName_str + "','" + dir_str + "','" + i_go_str + "','" + i_left_str + "','" +i_right_str + "','" + laneName_str + "','" + main_x_str + "','" + main_y_str + "','" + mainPointValid_str + "','" + sub_x_str + "','" +sub_y_str + "','" + subPointValid_str + "','" + frame_x_str + "','" + frame_y_str + "','" + frameValid_str + "','" + green_x_str + "','" + green_y_str + "','" + red_x_str + "','" + red_y_str + "','" + queueValid_str + "','" + calcMathod_str + "','" +channelType_A_str + "','" + channelTypee_B_str + "','" + xgr_str + "','" + xgsj_str + "');");}int jg = SqlHelper.ExecuteNoneQuery(sb.ToString(), new SqlParameter[] { });if (jg >= 0){return "{\"result\":true}";}else{return "{\"result\":false}";}}
秋风写于淄博,业务咨询与技术交流:Q375172665
相关文章:
c#[WebMethod]方法接收前端传入的JsonArray的方法
一、第一种方法:可以这样接收前端传入的jsonArray字符串到一个类的数组中,然后遍历该数组取值 这种方法需要创建PointConfig类 class PointConfig{public string ptcrossing { get; set; }public string ptcrossingId { get; set; }public string camId …...
WebService 报错 集锦
报错1:url错误 我的是调用的url的端口错误。调用esb的url的端口错了,导致报错。有的人是uri错了。例如: www.globalcoding.com:9001/SAP_saveProduct/1.0.0 写成了 www.globalcoding.com:9001/SAP_savePoduct/1.0.0 报错如下:…...
C++--菱形继承
1.什么是菱形继承 单继承:一个子类只有一个直接父类时称这个继承关系为单继承 多继承:一个子类有两个或以上直接父类时称这个继承关系为多继承 菱形继承的问题:菱形继承有数据冗余和二义性的问题,数据冗余是由于创建多个相同类型的…...
Vue 3:玩一下web前端技术(二)
前言 本章内容为VUE目录结构解析与相关工程技术讨论。 上一篇文章地址: Vue 3:玩一下web前端技术(一)_Lion King的博客-CSDN博客 下一篇文章地址: Vue 3:玩一下web前端技术(三)…...
自然语言处理14-基于文本向量和欧氏距离相似度的文本匹配,用于找到与查询语句最相似的文本
大家好,我是微学AI,今天给大家介绍一下自然语言处理14-基于文本向量和欧氏距离相似度的文本匹配,用于找到与查询语句最相似的文本。NLP中的文本匹配是指通过计算文本之间的相似度来找到与查询语句最相似的文本。其中一种常用的方法是基于文本…...
iOS开发-聊天emoji表情与自定义动图表情左右滑动控件
iOS开发-聊天emoji表情与自定义动图表情左右滑动控件 之前开发中遇到需要实现聊天emoji表情与自定义动图表情左右滑动控件。使用UICollectionView实现。 一、效果图 二、实现代码 UICollectionView是一种类似于UITableView但又比UITableView功能更强大、更灵活的视图&#x…...
Mybatis plus 存储 List、Map
目录 一、前提概要1.1 支持环境1.2 需求场景 二、需求实现2.1 非自定义数据类型,List、Map2.2 自定义类型数据类型 一、前提概要 1.1 支持环境 数据库支持:MySql版本要求 5.7 1.2 需求场景 使用MySQL数据库存储时,由于业务要求实体类中特…...
Electron 系统通知 Notification 实践指南
系统通知是桌面应用的常见功能,用于给用户发送提醒(刷下存在感 🙂),还能帮定点击事件以便后续的操作。 Electron 自带通知模块,下方代码是一个简单的示例 const { Notification } require(electron)cons…...
配置代理——解决跨域问题(详解)
之前写项目的时候总会遇到配置代理的问题,可是配置了之后有时有用,有时就没有用,自己之前学的也是懵懵懂懂,于是专门花了一个小时去了解了如何配置代理跨域,然后在此记录一下,方便自己以后查阅。 一、 常用…...
VScode 避免逗号、括号时自动补全
设置项 控制是否应在遇到提交字符时接受建议。例如,在JavaScript中,半角分号(;)可以为提交字符,能够在接受建议的同时键入该字符。 "editor.acceptSuggestionOnCommitCharacter": false起因 比如打伪代码的时候输入一些缺少上下…...
【数学建模】时间序列分析
文章目录 1. 条件2. 模型分类3. SPSS处理时间序列 1. 条件 1.使用于具有时间、数值两种要素 2.数据具有周期性可以使用时间序列分解 2. 模型分类 叠加模型【YTSCI】 序列的季节波动变化越来越大,反映变动之间的关系发生变化乘积序列【YTSC*I】 时间序列波动保持恒…...
Spring使用注解进行对象装配(DI)
文章目录 一. 什么是对象装配二. 三种注入方式1. 属性注入2. 构造方法注入3. Setter注入 三. 三种注入方式的优缺点四. 综合练习 通过五大类注解可以更便捷的将对象存储到 Spring 中,同样也可以使用注解将已经储存的对象取出来,直接赋值到注解所在类的一…...
数学建模-蒙特卡洛模拟
%% 蒙特卡罗用于模拟三门问题 clear;clc %% (1)预备知识 % randi([a,b],m,n)函数可在指定区间[a,b]内随机取出大小为m*n的整数矩阵 randi([1,5],5,8) %在区间[1,5]内随机取出大小为5*8的整数矩阵 % 2 5 4 5 3 1 4 2 %…...
Pearson correlation皮尔逊相关性分析
在参数检验的相关性分析方法主要是皮尔逊相关(Pearson correlation)。既然是参数检验方法,肯定是有一些前提条件。皮尔逊相关的前提是必须满足以下几个条件: 变量是连续变量;比较的两个变量必须来源于同一个总体&…...
P1036 [NOIP2002 普及组] 选数
题目描述 已知 �n 个整数 �1,�2,⋯ ,��x1,x2,⋯,xn,以及 11 个整数 �k(�<�k<n)。从 �n 个整数中任选 �k 个…...
css终极方案PostCSS
一见如故 原理 所有的css框架都在一样的事,那就是由一个css生成一个新的css,那么postcss就来做了一个抽离: 1、将原有的css解析成抽象语法树 2、中间经过若干个插件 3、重新文本化,形成新的css postcss.config.js module.expor…...
代码随想录算法训练营第三天|417. 太平洋大西洋水流问题|24. 两两交换链表中的节点|19.删除链表的倒数第N个节点|面试题 02.07. 链表相交|
417. 太平洋大西洋水流问题 水往高处流,先记录两个海祥往高处流所能留到的地址,之后将他们的合并区域进行输出 static const int dirs[4][2] {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};class Solution { public:vector<vector<int>> heights;v…...
【Java】Spring——创建Spring + 对Spring的存储 /读取对象操作
文章目录 前言一、创建Spring项目二、向Spring容器中存储 Bean 对象三、从Spring容器中读取 Bean 对象得到Spring上下文对象得到 Bean 对象 总结 前言 本人是一个普通程序猿!分享一点自己的见解,如果有错误的地方欢迎各位大佬莅临指导,如果你也对编程感兴趣的话,互…...
RTPSv2.2(中文版)
实时发布订阅协议 (RTPS) DDS互操作性 有线协议规范 V2.2 (2014-09-01正式发布) https://www.omg.org/spec/DDSI-RTPS/2.2/PDF 目 录 1 范围Scope 9 2 一致性Conformance 9 3 参考文献References 9 4 术语和定义Terms a…...
Django学习笔记-视图(views)的使用
Django中可以使用views进行管理,类似于WPF的MVVM的ViewModel层,也相当于MVC架构的模Controller层。 一、基于函数的视图FBV(Function-Based View) 通过定义一个函数,包含HttpRequest对象作为参数,用来接受…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...
stm32wle5 lpuart DMA数据不接收
配置波特率9600时,需要使用外部低速晶振...
LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)
在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...
Unity VR/MR开发-VR开发与传统3D开发的差异
视频讲解链接:【XR马斯维】VR/MR开发与传统3D开发的差异【UnityVR/MR开发教程--入门】_哔哩哔哩_bilibili...
