찾다
웹 프론트엔드JS 튜토리얼json_json을 이용한 프론트엔드와 백엔드 간의 상호 가치 전달에 대한 자세한 설명

프런트엔드와 백엔드 간의 상호 가치 전달을 위한 값이 너무 많으면 작성이 번거롭고 피곤하며 오류가 발생하기 쉽습니다. 다음은 마크 태그 속성을 사용하여 값을 전달하는 일련의 방법입니다. 백엔드 값 획득 및 프런트엔드 바인딩이 크게 단순화되었습니다.

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을 사용하여 프런트엔드 및 백엔드 가치 전송을 구현하는 방법에 대해 명확하게 이해하고 계시나요? 궁금한 점이 있으면 메시지를 남겨주세요

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
VUE3怎么使用JSON编辑器VUE3怎么使用JSON编辑器May 12, 2023 pm 05:34 PM

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

SpringBoot之Json的序列化和反序列化问题怎么解决SpringBoot之Json的序列化和反序列化问题怎么解决May 12, 2023 pm 04:07 PM

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

php输出json无法解析的原因和解决方法【总结】php输出json无法解析的原因和解决方法【总结】Mar 23, 2023 pm 04:35 PM

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

php如何将xml转为json格式?3种方法分享php如何将xml转为json格式?3种方法分享Mar 22, 2023 am 10:38 AM

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

Java怎么调用接口获取json数据解析后保存到数据库Java怎么调用接口获取json数据解析后保存到数据库May 14, 2023 am 10:58 AM

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(JSON Web Token)的原理及用法深入解析JWT(JSON Web Token)的原理及用法Jan 10, 2023 am 10:55 AM

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

java怎么校验json的格式是否符合要求java怎么校验json的格式是否符合要求May 15, 2023 pm 04:01 PM

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

SpringBoot怎么读取资源目录中JSON文件SpringBoot怎么读取资源目录中JSON文件May 16, 2023 pm 01:25 PM

思路使用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

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

안전한 시험 브라우저

안전한 시험 브라우저

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

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기