Json——js和C#对Json的操作

原文:Json——js和C#对Json的操作

   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<ToJson>(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<DragElementProp>();
            List<PageProperty> lstRes = new List<PageProperty>();
            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

        });
    };

 

时间: 2024-09-07 19:10:22

Json——js和C#对Json的操作的相关文章

js使用eval解析json

 eval的用法eval函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句,下面给出eval解析json的示例 先来说eval的用法,内容比较简单,熟悉的可以跳过 eval函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句.如果s语句执行结果是一个值,则返回此值,否则返回undefined. 需要特别注意的是对象声明语法"{}"并不能返回一个值,需要用括号括起来才会返回值,简单示例如下:    代码如下: var s1='"a" +

在JS中将JSON的字符串解析成JSON数据格式一般有两种方式

在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 第一种解析方式:使用eval函数来解析,并且使用jQuery的each方法来遍历 用jQuery解析JSON数据的方法,作为jQuery异步请求的传输对象,jQuery请求后返回的结果是json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObject等插件封装的JSON对象,与此亦是大同小异,这里不再做说明. 这里首先

Prototype.js evalJSON()等于json.js的parseJSON()?

问题描述 Prototype.js evalJSON()等于json.js的parseJSON()? Prototype.js evalJSON()方法与json.js的parseJSON()功能是否一样啊? 这两个方法是不是都是把json字符串转化为json对象啊? 解决方案 JSON.parse()之可以解析json格式的数据,并且会对要解析的字符串进行格式检查,如果格式不正确则不进行解析,而eval()则可以解析任何字符串,eval是不安全的. 比如下面的字符串: var str = 'a

js使用eval解析json(js中使用json)_javascript技巧

先来说eval的用法,内容比较简单,熟悉的可以跳过eval函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句.如果s语句执行结果是一个值,则返回此值,否则返回undefined. 需要特别注意的是对象声明语法"{}"并不能返回一个值,需要用括号括起来才会返回值,简单示例如下: 复制代码 代码如下: var s1='"a" + 2'; //表达式var s2='{a:2}'; //语句alert(eval(s1)); //->'a2'alert(

原生JS封装ajax 传json,str,excel文件上传提交表单(推荐)_javascript技巧

由于项目中需要在提交ajax前设置header信息,jquery的ajax实现不了,我们自己封装几个常用的ajax方法. jQuery的ajax普通封装 var ajaxFn = function(uri, data, cb) { $.ajax({ url: uri, type: 'POST', dataType: 'json', data: data, }) .done(cb) .fail(function() { console.log("error"); }) .always(f

JS使用eval解析JSON的注意事项分析_javascript技巧

本文较为详细的分析了JS使用eval解析JSON的注意事项.分享给大家供大家参考,具体如下: 在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的each方法来遍历 用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是json对象,这里考虑的都是服务器 返回JSON形式的字符串的形式,对于利用JSONO

JS对象序列化为JSON对象

JS对象序列化为JSON对象,如下代码: /**    * JSON 解析类    * 方法:    * 将JSON字符串解码为页面可识别的object对象    * @param {String} json The JSON string    * @return {Object} The resulting object     * Object o = JSONUtil.decode(json);    *     * 将JS对象序列化为JSON字符串    * @param {Mixed

js 与 php 通过json数据进行通讯

 这篇文章主要介绍了js与php通过json数据进行通讯的具体实现,需要的朋友可以参考下 js 与 php 通过json数据进行通讯    例子:    php文件  代码如下: <?php  echo json_encode(array(array(  'liaotiantiao'=>$liaotiantiao,  'liaotiank'=>$liaotiank,  'chatuserid'=>$chatuserid,  'chattouserid'=>$chattouse

js 与 php 通过json数据进行通讯示例_javascript技巧

js 与 php 通过json数据进行通讯 例子: php文件 复制代码 代码如下: <?php echo json_encode(array(array( 'liaotiantiao'=>$liaotiantiao, 'liaotiank'=>$liaotiank, 'chatuserid'=>$chatuserid, 'chattouserid'=>$chattouserid ))); ?> html 文件 复制代码 代码如下: $(document).ready(