Json 使用

页面上使用json

json字符串 和 JavaScript 对象之间的转换

JSON.parse()、eval()、和jQuery.parseJSON()是json字符串---> js对象

JSON.stringify() 是js对象---> json字符串

ajax一般data参数传值的时候要 stringify()   匿名模拟对象 变成json传给控制器  
而控制器返回json数据之后回调函数要JSON.parse(data)换成js对象 进一步处理
eg:
$.ajax({
                url: "/Home/AddPrivateTour",
                type: "POST",
                traditional: true,
                data: {
                    "Suggest": Suggest,
                    "Require": Require,
                    "privatetour": JSON.stringify(privatelist),
                    "list": JSON.stringify(ListPlace),
                },
                success: function (result) {
                    if (result == "Save successfully!") {
                        $("#divShowContactInfo").show();
                        $('body,html').animate({ scrollTop: $("#loc").offset().top }, 500);
                        //window.location.hash = "loc";
                        setTimeout(function () { location.href = "Privatetours"; }, 8000);

                    }
                    else {
                        alert("Save failed!");
                    }
                }
            });

为什么不用eval 的原因是因为eval不安全(避免在不必要的情况下使用 eval)
eval() 是一个危险的函数, 他执行的代码拥有着执行者的权利。
如果你用 eval() 运行的字符串代码被恶意方(不怀好意的人)操控修改,
您最终可能会在您的网页/扩展程序的权限下,在用户计算机上运行恶意代码。
更重要的是,第三方代码可以看到某一个eval()被调用时的作用域,
这也有可能导致一些不同方式的攻击。相似的 Function 就不容易被攻击


控制器.net使用 json 序列化 和 反序列化
一般使用 NewtonJson.dll
JsonConvert.SerializeObject(内容,格式化,handing条件属性比如去空去重)
eq:
string json = JsonConvert.SerializeObject(对象,Formatting.Indented(可读性好), new JsonSerializerSettings
 {
     ReferenceLoopHandling = ReferenceLoopHandling.Ignore //去重
 });

JsonConvert.DeserializeObject <实体>(json内容)


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值