使用JSON数据格式进行前后端交互

在web开发中很多场景都使用了json数据格式进行前后端交互,json使用场景太多了,每个开发者都会遇到。感觉做web前端的东西真的很重要!

前端处理json字符串

在json数据和json对象相互转化,最好使用Newtonsoft.Json,常用的两种方法,第一个是将对象序列化为json,在序列化为json时候,有时候会用到匿名对象,使用匿名对象比自己新建实体类要简单一些。废话不说先上代码

 public object Ajax()
        {
            string Name = "jindou";
            string Active = "changge";
            int Num = 1;
            decimal Price = 500;
            var People = new
            {
                Name,
                Active,
                Num,
                Price,
            };
            var events = JsonConvert.SerializeObject(People);
            return events;
        }

用一个匿名对象People,使用Newtonsoft中的JsonConvert.SerializeObject(),将匿名对象序列化为json字符串,将序列化的字符串返回。
在前端处理获取到的json字符串

    var result = JSON.parse(res);
       alert(result.Name + result.Active + result.Num + result.Price);

在前端使用JSON.parse();将序列化的json字符串转为json对象,这里就是涉及到反序列化,将json字符串华转化为对象的过程就是反序列化。 但是js反序列化拿到的对象,不能和后端代码的类一样去点出属性,因为js是弱类型的语音,只有通过自己去写出相关属性,才能正确使用。

后端处理json字符串

后端处理json字符串也是经常遇到的,前端将json对象序列化为json字符串,将json字符串传递给后端方法。后端方法将json字符串反序列化为对象。这是一个过程。

 var ml = {
                Name:"yusaohong",
                Year:12,
                Active:"kk",
            }
            var arr = ["Name", "Active"];
            var go = JSON.stringify(ml, arr);//将js对象转化为字符串           
            $.post("@Url.Action("GetJs","GetJson")", { Detail: go }, function (res) {
                var de = JSON.parse(res);
                var arrayd = de.MyArray;               
            })

前端将js对象使用JSON.stringify()方法序列化为json字符串。对于JSON.stringify()方法中,可以加一个参数,对json对象中某些属性进行筛选。要传入一个数组,数组中的内容是要筛选的属性名字。比较方便使用。在获取到json字符串之后,后端的处理方式也很简单。、

   public object GetJs(string Detail)
        {
            People p = JsonConvert.DeserializeObject<People>(Detail);
            string result = "ok";
            return result;
        }

Newtonsoft方法提供了反序列化的方法,比较常用的有DeserializeObject(string value)返回一个新的泛型类对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangguan96

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值