当前位置: 首页 > news >正文

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的方法

一、第一种方法&#xff1a;可以这样接收前端传入的jsonArray字符串到一个类的数组中&#xff0c;然后遍历该数组取值 这种方法需要创建PointConfig类 class PointConfig{public string ptcrossing { get; set; }public string ptcrossingId { get; set; }public string camId …...

WebService 报错 集锦

报错1&#xff1a;url错误 我的是调用的url的端口错误。调用esb的url的端口错了&#xff0c;导致报错。有的人是uri错了。例如&#xff1a; www.globalcoding.com:9001/SAP_saveProduct/1.0.0 写成了 www.globalcoding.com:9001/SAP_savePoduct/1.0.0 报错如下&#xff1a;…...

C++--菱形继承

1.什么是菱形继承 单继承&#xff1a;一个子类只有一个直接父类时称这个继承关系为单继承 多继承&#xff1a;一个子类有两个或以上直接父类时称这个继承关系为多继承 菱形继承的问题&#xff1a;菱形继承有数据冗余和二义性的问题&#xff0c;数据冗余是由于创建多个相同类型的…...

Vue 3:玩一下web前端技术(二)

前言 本章内容为VUE目录结构解析与相关工程技术讨论。 上一篇文章地址&#xff1a; Vue 3&#xff1a;玩一下web前端技术&#xff08;一&#xff09;_Lion King的博客-CSDN博客 下一篇文章地址&#xff1a; Vue 3&#xff1a;玩一下web前端技术&#xff08;三&#xff09;…...

自然语言处理14-基于文本向量和欧氏距离相似度的文本匹配,用于找到与查询语句最相似的文本

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下自然语言处理14-基于文本向量和欧氏距离相似度的文本匹配&#xff0c;用于找到与查询语句最相似的文本。NLP中的文本匹配是指通过计算文本之间的相似度来找到与查询语句最相似的文本。其中一种常用的方法是基于文本…...

iOS开发-聊天emoji表情与自定义动图表情左右滑动控件

iOS开发-聊天emoji表情与自定义动图表情左右滑动控件 之前开发中遇到需要实现聊天emoji表情与自定义动图表情左右滑动控件。使用UICollectionView实现。 一、效果图 二、实现代码 UICollectionView是一种类似于UITableView但又比UITableView功能更强大、更灵活的视图&#x…...

Mybatis plus 存储 List、Map

目录 一、前提概要1.1 支持环境1.2 需求场景 二、需求实现2.1 非自定义数据类型&#xff0c;List、Map2.2 自定义类型数据类型 一、前提概要 1.1 支持环境 数据库支持&#xff1a;MySql版本要求 5.7 1.2 需求场景 使用MySQL数据库存储时&#xff0c;由于业务要求实体类中特…...

Electron 系统通知 Notification 实践指南

系统通知是桌面应用的常见功能&#xff0c;用于给用户发送提醒&#xff08;刷下存在感 &#x1f642;&#xff09;&#xff0c;还能帮定点击事件以便后续的操作。 Electron 自带通知模块&#xff0c;下方代码是一个简单的示例 const { Notification } require(electron)cons…...

配置代理——解决跨域问题(详解)

之前写项目的时候总会遇到配置代理的问题&#xff0c;可是配置了之后有时有用&#xff0c;有时就没有用&#xff0c;自己之前学的也是懵懵懂懂&#xff0c;于是专门花了一个小时去了解了如何配置代理跨域&#xff0c;然后在此记录一下&#xff0c;方便自己以后查阅。 一、 常用…...

VScode 避免逗号、括号时自动补全

设置项 控制是否应在遇到提交字符时接受建议。例如&#xff0c;在JavaScript中&#xff0c;半角分号(;)可以为提交字符&#xff0c;能够在接受建议的同时键入该字符。 "editor.acceptSuggestionOnCommitCharacter": false起因 比如打伪代码的时候输入一些缺少上下…...

【数学建模】时间序列分析

文章目录 1. 条件2. 模型分类3. SPSS处理时间序列 1. 条件 1.使用于具有时间、数值两种要素 2.数据具有周期性可以使用时间序列分解 2. 模型分类 叠加模型【YTSCI】 序列的季节波动变化越来越大&#xff0c;反映变动之间的关系发生变化乘积序列【YTSC*I】 时间序列波动保持恒…...

Spring使用注解进行对象装配(DI)

文章目录 一. 什么是对象装配二. 三种注入方式1. 属性注入2. 构造方法注入3. Setter注入 三. 三种注入方式的优缺点四. 综合练习 通过五大类注解可以更便捷的将对象存储到 Spring 中&#xff0c;同样也可以使用注解将已经储存的对象取出来&#xff0c;直接赋值到注解所在类的一…...

数学建模-蒙特卡洛模拟

%% 蒙特卡罗用于模拟三门问题 clear;clc %% &#xff08;1&#xff09;预备知识 % 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皮尔逊相关性分析

在参数检验的相关性分析方法主要是皮尔逊相关&#xff08;Pearson correlation&#xff09;。既然是参数检验方法&#xff0c;肯定是有一些前提条件。皮尔逊相关的前提是必须满足以下几个条件&#xff1a; 变量是连续变量&#xff1b;比较的两个变量必须来源于同一个总体&…...

P1036 [NOIP2002 普及组] 选数

题目描述 已知 &#xfffd;n 个整数 &#xfffd;1,&#xfffd;2,⋯ ,&#xfffd;&#xfffd;x1​,x2​,⋯,xn​&#xff0c;以及 11 个整数 &#xfffd;k&#xff08;&#xfffd;<&#xfffd;k<n&#xff09;。从 &#xfffd;n 个整数中任选 &#xfffd;k 个…...

css终极方案PostCSS

一见如故 原理 所有的css框架都在一样的事&#xff0c;那就是由一个css生成一个新的css&#xff0c;那么postcss就来做了一个抽离&#xff1a; 1、将原有的css解析成抽象语法树 2、中间经过若干个插件 3、重新文本化&#xff0c;形成新的css postcss.config.js module.expor…...

代码随想录算法训练营第三天|417. 太平洋大西洋水流问题|24. 两两交换链表中的节点|19.删除链表的倒数第N个节点|面试题 02.07. 链表相交|

417. 太平洋大西洋水流问题 水往高处流&#xff0c;先记录两个海祥往高处流所能留到的地址&#xff0c;之后将他们的合并区域进行输出 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 对象 总结 前言 本人是一个普通程序猿!分享一点自己的见解,如果有错误的地方欢迎各位大佬莅临指导,如果你也对编程感兴趣的话&#xff0c;互…...

RTPSv2.2(中文版)

实时发布订阅协议 &#xff08;RTPS&#xff09; DDS互操作性 有线协议规范 V2.2 &#xff08;2014-09-01正式发布&#xff09; 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进行管理&#xff0c;类似于WPF的MVVM的ViewModel层&#xff0c;也相当于MVC架构的模Controller层。 一、基于函数的视图FBV&#xff08;Function-Based View&#xff09; 通过定义一个函数&#xff0c;包含HttpRequest对象作为参数&#xff0c;用来接受…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指&#xff1a;像函数调用/返回一样轻量地完成任务切换。 举例说明&#xff1a; 当你在程序中写一个函数调用&#xff1a; funcA() 然后 funcA 执行完后返回&…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

虚拟电厂发展三大趋势:市场化、技术主导、车网互联

市场化&#xff1a;从政策驱动到多元盈利 政策全面赋能 2025年4月&#xff0c;国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》&#xff0c;首次明确虚拟电厂为“独立市场主体”&#xff0c;提出硬性目标&#xff1a;2027年全国调节能力≥2000万千瓦&#xff0…...