>  기사  >  웹 프론트엔드  >  JavaScript-Json 객체 병합

JavaScript-Json 객체 병합

高洛峰
高洛峰원래의
2016-11-25 14:15:041555검색

소개:

Ajax 메서드를 사용하여 Asp.net mvc 프레임워크에서 Action 메서드에 복잡한 Json 개체를 제출하면 몇 가지 문제가 발생합니다. 여기서는 ASP에서 이 문제를 해결하기 위해 Javascript를 사용합니다. .net mvc 3.0 이후에는 JsonValueProviderFactory를 사용하여 이 문제를 해결할 수 있지만 여기서는 순수 js를 사용하여 이 문제에 대한 솔루션을 제공합니다. 이 방법은 mvc 2.0의 이전 시스템에서도 사용할 수 있습니다.

다음 개체 구조와 같은 복잡한 개체를 제출해야 합니다.

1 {

2 hotelName:'abc',

3 hotelAddress: 'Beijing Haidian Road No. 72',

객실 4개:[ {roomName:'Standard Room',roomPrice:720},

5    {roomName:Deluxe Room,roomPrice:1020}] ,

6 HotelStar:4

7 }

8 // 이때 배경 Action 객체에 올바르게 제출하려면 다음 형식으로 변환해야 합니다.

9

10

11 {

12 호텔 이름:'abc',

13 호텔 주소:' No. 72, Haidian Road, Beijing ',

객실 14개[0]: {roomName:'Standard Room',roomPrice:720},

객실 15개[1]: {roomName:Deluxe Room,roomPrice: 1020},

16 HotelStar:4

17 }

18 //형식 변환 코드:

19

20 var 변환 ={

21 _jsonFlat:function (data, parentPro, returnObj) {

22 if (data instanceof Object) {

23 for (varpro in data) {

>24 ~

29개종. _jsonFlat(proValue[i], parentPro + "." + pro + "["+ i + "]", returnObj)

30 }

31                                                                   Convert._jsonFlat(proValue[i ], pro + "[ " + i + "]",returnObj);

33                                                                                                                          

37 if(parentPro)

38 Convert._jsonFlat(proValue, parentPro + "."+ pro, returnObj);

39 else

40 Convert._jsonFlat(proValue, pro, returnObj)

41                           

44 if(parentPro)

45                        returnObj[parentPro + "." + pro] = 프로값; 

46                    else 

47                      returnObj[pro] =proValue; 

48   

49                } 

50                catch(e) { }; 

51             } 

52             반품; 

53         } 

54         //그렇지 않으면 문자열/int/날짜/시간 형식과 유사 

55         returnObj[parentPro] = data; 

56     },jsonFlat: function(data) { 

57         //디버거; 

58         if(data && data instanceof Object) { 

59             varretObj = {}; 

60             Convert._jsonFlat(data, null, retObj); 

61             returnretObj; 

62         } 

63         null 반환; 

64     }, 

65 } 

解释:以上代码就是完成Json对象格式的转换,只有通过转换厎的复材J son对象才能提交到后台的액션 방법上 上 上 jsonfloat 方法 方法 运用 递归 遍历 遍历 遍历 json 对象 对象 上 的 所有 所有 属性 进行 进行 扁平化 转换。。

调用 调用 例子

viewprint?

1 $ .ajax ({

2       url: "controller/action",

3       data:Convert.jsonFlat({/*your json data*/}),

4       성공: function(){

5         $(this).addClass("done");

6       }

7     });

지금 3.0以后Mvc已经内置注册册JsonValueProviderFactory, 然后就可以直接这样调사용 ajax 방식법이 없습니다.成application/json.

원본 보기

$.ajax({

  url: "controller/action",

  data:{/*your json data*/},

  contentType: "application/json",

  성공: function(){

    $(this).addClass("done");

  }

} );

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