博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Json——js和C#对Json的操作
阅读量:6618 次
发布时间:2019-06-25

本文共 2801 字,大约阅读时间需要 9 分钟。

原文:

   JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式。博主记得几年前在华为外包项目中有一个和Android应用交互的需求,Android调用C#的Webservice的接口,就是通过Json这种格式来传递数据的。就是因为这种完全独立于语言的数据格式,所以在系统的前后台被广泛使用。本篇用来记录下前端JS以及后端C#里面JSON的一些常用的操作方法。笔记笔记,好记性不如多笔记~~

 

JS前端JSON操作: 

一、Json数据转字符串:

var myList = [            { Name: "Jim", Age: 20 },            { Name: "Kate", Age: 21 },            { Name: "Lilei", Age: 18 },            { Name: "John", Age: 14 },            { Name: "LinTao", Age: 25 }    ];

方法一:

var oString2 = JSON.stringify(myList);

结果

这个方法是js中JSON对象内置的。可以直接使用。

方法二:

var oString1 = myList.toJSONString();

这个方法需要json.js的支持。直接使用会报异常。

 

二、string字符串转JSON对象:

方法一:

var oString2 = JSON.stringify(myList);var oJson1 = eval(oString2);

eval()方法是内置的。可直接使用。

方法二:

var oJson2 = $.parseJSON(oString2);

需要jQuery的支持。

方法三:

var oJson3 = JSON.parse(oString2);

是js内置的,可以直接使用。

方法四:

var oJson4 = String.parseJSON(oString2);

需要引json.js文件。

 

综上所述:在js里面JSON变量操作不需要引用任何文件直接使用的方法有JSON.stringify(myList)、JSON.parse(oString2)、eval(oString2)。

 

C#后台JSON处理:

在C#里面,Json可以理解为一种匿名对象,每一个键值对就可以理解为对应对象的属性和值。在后端Json这种格式一般用于对象的序列化:

     public void JsonTooo()        {            string jsonStr = "{\"name\":\"tom\",\"age\":11}";   //jsonStr 为json格式的字符串            JavaScriptSerializer json = new JavaScriptSerializer();   //实例化一个能够序列化数据的类            ToJson list = json.Deserialize
(jsonStr); //将json数据转化为对象类型并赋值给list string Name = list.name; //Name的值为tom.. list可点出name }

那么肯定就有一个对象和它对应。

     public class ToJson        {            public string name { get; set; }  //属性的名字,必须与json格式字符串中的"key"值一样。            public string age  { get; set; }        }

这种对应关系的转换序列化方式前面已经说了很多了。在此就不多说。

MVC里面更是很好的支持了后台程序对Json数据的支持。比如Controller里面JsonResult对象

     public JsonResult GetEditModel(string strType)        {            var lstRes = new List
(); List
lstRes = new List
(); return Json(new { lstDataAttr = lstRes, PageAttr = lstPageAttrs }, JsonRequestBehavior.AllowGet); }

只需要DraElementProp和PageProperty这两个对象支持对象可序列化,就可以直接将对象传到前端:

  [DataContract]    public class PageProperty    {        [DataMember]        public string Id { get; set; }        [DataMember]        public string Width { get; set; }        [DataMember]        public string Height { get; set; }        [DataMember]    }

 

  

前端和后端通信使用Ajax的时候大部分情况是通过Json数据进行数据交互的。这个时候需要指定datatype类型为json。

$.Gmzp.AjaxPost = function (strUrl, oParams, funSuccessCallback, funErrorCallback, funFinishCallback) {
$.ajax({ type: "POST", url: strUrl, data: oParams,        async: false,//false为阻塞请求        dataType: "json", success: funSuccessCallback, error: funErrorCallback, complete: funFinishCallback }); };

 

转载地址:http://wbypo.baihongyu.com/

你可能感兴趣的文章
kuangbin专题七 POJ3264 Balanced Lineup (线段树最大最小)
查看>>
JS动画效果链接汇总
查看>>
陈云川的OPENLDAP系列
查看>>
P1197 [JSOI2008]星球大战
查看>>
XML转义字符
查看>>
mysql设置字符集CHARACTER SET
查看>>
Perl完全自学手册图文教程
查看>>
wordpress拿WebShell
查看>>
校园的早晨
查看>>
oracle取前几行|中间几行|后几行
查看>>
16.1 Tomcat介绍
查看>>
QuickBI助你成为分析师——数据源FAQ小结
查看>>
十周三次课
查看>>
2008 AD 复制有防火墙要开什么端口
查看>>
我的友情链接
查看>>
敏友的【敏捷个人】有感(11): 敏捷个人线下活动有感
查看>>
刺激用户危机意识,实现快速盈利的营销思维
查看>>
植物大战僵尸
查看>>
原创文章
查看>>
理解JavaScript私有作用域
查看>>