프런트엔드와 백엔드 간의 상호 가치 전달을 위한 값이 너무 많으면 작성이 번거롭고 피곤하며 오류가 발생하기 쉽습니다. 다음은 마크 태그 속성을 사용하여 값을 전달하는 일련의 방법입니다. 백엔드 값 획득 및 프런트엔드 바인딩이 크게 단순화되었습니다.
1. json 객체를 문자열로 변환
$.extend({
//json 객체를 문자열로 변환 [jquery에는 이 메소드가 없는 것 같습니다]
toJSONString: 함수(객체) {
if (객체 == null)
반품;
var type = 객체 유형;
If ('객체' == 유형) {
If (Array == object.constructor) type = 'array';
else if (RegExp == object.constructor) type = 'regexp';
else type = '객체';
}
스위치(유형) {
'정의되지 않음':
사례 '알 수 없음':
반품;
휴식;
케이스 '함수':
사례 '부울':
사례 'regexp':
return object.toString();
휴식;
사례 '번호':
isFinite(object) ? object.toString() : 'null';
휴식;
케이스 '문자열':
return '"' object.replace(/(\|")/g, "\$1").replace(/n|r|t/g, function () {
var a = 인수[0];
return (a == 'n') ? '\n' : (a == 'r') ? '\r' : (a == 't') ? '\t' : ""
'"'; 휴식;
케이스 '개체':
(객체 === null)인 경우 'null'을 반환합니다.
var 결과 = [];
for(객체의 var 속성) {
var value = $.toJSONString(object[property]);
if (값 !== 정의되지 않음) results.push($.toJSONString(property) ':' value);
}
return '{' results.join(',') '}';
휴식;
케이스 '배열':
var 결과 = [];
for (var i = 0; i var 값 = $.toJSONString(object[i]);
if (값 !== 정의되지 않음) results.push(값);
}
return '[' results.join(',') ']';
휴식;
}
}
});
이것,创建数据容器对象 [사용来绑定要传给后台的前台控件值]
var DataClass = {
만들기: 함수 () {
반환 함수() {
This.myinit.apply (this, 인수); // 생성 객체의 생성자 // 인수의 매개변수 수집 시스템 이름은 잘못 쓸 수 없습니다
}
}
}
var MyDataPack = DataClass.create();
MyDataPack.prototype = {
//초기화
MyInit: 함수(url, 연산, 매개변수) {
This.data = new Object(); //모든 데이터 용량
var bdata = new Object();
bdata.url = url; bdata.eration = 작업;//작업
bdata.params = params; This.data.BasicData = bdata; //기본 데이터
},
//다음과 같은 데이터를 추가합니다: addValue("obj", "111");
addValue: 함수(p, obj) {
This.data[p] = obj;
},
//모든 마크 컨트롤의 값을 가져와서 데이터를 씁니다
GetValueSetData: 함수(togName) {
var 값 = Object() // 값 모음
$("[subtag='" togName "']").each(function () {
//입력형 컨트롤인 경우
If (this.localName == "input") {
//텍스트 컨트롤인 경우
If (this.type == "text" || this.type == "hidden") {
값[this.id] = this.value;
| else if (this.type == "...") {
| > }
else if (this.localName == "...") {
}
});
This.data[togName] = 값;//데이터 수집에 추가
},
//다음과 같은 값: getValue("BasicData")
GetValue: 함수(p) {
this.data 반환[p];
},
//URL 가져오기 또는 설정
GetUrl: 함수(url) {
만약 (url)
This.data.BasicData["url"] = url;
그 외
return this.data.BasicData["url"];
}
,
//값을 문자열 객체 데이터로 변환
GetJsonData: 함수 () {
return $.toJSONString(this.data);
}
}
3. 바인딩된 프런트엔드 데이터 개체를 만듭니다. [백그라운드에서 전달된 값을 읽고 이를 프런트엔드 페이지에 바인딩하는 데 사용됨]
var MyDataBinder = {
//데이터를 제어 데이터에 바인딩: data 태그: 태그
바인드: 함수(데이터, 태그) {
var MJson = $.parseJSON(data);
//표시된 태그만 바인딩
$("[bindtag='" 태그 "']").each(함수 () {
If (this.localName == "input") {
if (MJson[this.id]) //백그라운드에서 값이 전달되는 경우
$(this).attr("value", MJson[this.id]);
}
else if (this.localName == "...") {
}
//....
});
}
};
4. 사용예
프런트엔드 HTML:
> > >
> > 테이블>
프런트엔드 js:
코드 복사
//=====================사용예========================== ============
var MyDataPack = new MyDataPack("Handler1.ashx", "CESHI", "");
MyDataPack.getValueSetData("subtag");//객체에 컨트롤 데이터 쓰기 "subtag"는 컨트롤 값을 가져오는 태그입니다
//------프론트엔드 값을 백엔드로 전달---------------
$.post(MyDataPack.getUrl(), MyDataPack.getJsonData(), 함수(데이터) {
//-------------------배경 값을 전경에 바인딩------
MyDataBinder.Bind(data, "bind"); //"bind"는 바인딩할 컨트롤의 레이블
입니다. });
백스테이지:
공개 무효 ProcessRequest(HttpContext 컨텍스트)
{
Context.Response.ContentType = "텍스트/일반";
//====================전경 값 가져오기======================== == ====================
//백그라운드에서 전달되는 것은 json 객체의 변환된 문자열이므로 모든 데이터가 매개변수로 전달됩니다
var 값 = context.Request.Form[0];
//System.Web.Extensions.dll 어셈블리를 도입해야 합니다
JavaScriptSerializer _jsSerializer = 새로운 JavaScriptSerializer();
//json 객체 문자열을 Dictionary 객체로 변환
사전> dic = _jsSerializer.Deserialize>>(값);
//이제 dic에는 프런트 데스크에서 전달된 모든 값이 포함되어 있으므로 원하는 대로 사용할 수 있습니다.
String inp_2 = dic["subtag"]["inp_2"];//이렇게 하면 첫 페이지에서 id가 inp_2인 컨트롤 값 값을 바로 얻을 수 있습니다
//======================= 프론트에 값 전달==================== ===== =====================
사전 dic2 = 새 사전();
dic2.Add("inp_1", "Modify 1");//여기서는 해당 컨트롤 ID를 사용하여 값을 전달합니다
dic2.Add("inp_2", "수정 2");
dic2.Add("inp_3", "수정 3");
Context.Response.Write(_jsSerializer.Serialize(dic2));
}
json을 사용하여 프런트엔드 및 백엔드 가치 전송을 구현하는 방법에 대해 명확하게 이해하고 계시나요? 궁금한 점이 있으면 메시지를 남겨주세요

1、先看看效果图,可以自行选择展示效果2、这是我在vue3项目中使用的JSON编辑器,首先引入第三方插件npminstalljson-editor-vue3yarnaddjson-editor-vue33、引入到项目中//导入模块importJsonEditorVuefrom'json-editor-vue3'//注册组件components:{JsonEditorVue},4、一般后端返回的是会将JSON转为String形式我们传给后端也是通过这种形式,就可以通

控制json序列化/反序列化1.@JsonIgnoreProperties的用法@JsonIgnoreProperties(value={"prop1","prop2"})用来修饰Pojo类,在序列化和反序列化的时候忽略指定的属性,可以忽略一个或多个属性.@JsonIgnoreProperties(ignoreUnknown=true)用来修饰Pojo类,在反序列化的时候忽略那些无法被设置的属性,包括无法在构造子设置和没有对应的setter方法.2.@Js

PHP作为一种常见的编程语言,在web开发中使用广泛,其与前端交互的方式也多种多样。其中,输出Json数据是一种常见的交互方式,但有时候会碰到Json无法解析的问题。为什么会出现无法解析的情况呢?下面列举了几个可能的原因。

当我们处理数据时经常会遇到将XML格式转换为JSON格式的需求。PHP有许多内置函数可以帮助我们执行这个操作。在本文中,我们将讨论将XML格式转换为JSON格式的不同方法。

Java调用接口获取json数据保存到数据库1.在yml文件中配置自己定义的接口URL//自己定义的JSON接口URLblacklist_data_url:接口URL2.在Controller中添加请求方法和路径/***@Title:查询*@Description:查询车辆的记录*@Author:半度纳*@Date:2022/9/2717:33*/@GetMapping("/Blacklist")publicvoidselectBlacklist(){booleana=imB

本篇文章给大家带来了关于JWT的相关知识,其中主要介绍了什么是JWT?JWT的原理以及用法是什么?感兴趣的朋友,下面一起来看一下吧,希望对大家有帮助。

JSONSchemaJSONSchema是用于验证JSON数据结构的强大工具,Schema可以理解为模式或者规则。JsonSchema定义了一套词汇和规则,这套词汇和规则用来定义Json元数据,且元数据也是通过Json数据形式表达的。Json元数据定义了Json数据需要满足的规范,规范包括成员、结构、类型、约束等。JSONSchema就是json的格式描述、定义、模板,有了他就可以生成任何符合要求的json数据json-schema-validator在java中,对json数据格式的校验,使用

思路使用Spring的ResourceUtils读取资源目录下的json文件。使用common-io将读取的文件转化为json字符串。使用fastjson将json字符串反序列为对象。示例1.Maven依赖pom.xml,主要是common-io、fastjson的引入。commons-iocommons-io2.11.0com.alibaba.fastjson2fastjson22.0.142.json资源文件notice.json,简单列举要使用json内容。[{"title&qu


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

WebStorm Mac 버전
유용한 JavaScript 개발 도구

Dreamweaver Mac版
시각적 웹 개발 도구

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

뜨거운 주제



