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

简介: 原文:Json——js和C#对Json的操作   JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式。博主记得几年前在华为外包项目中有一个和Android应用交互的需求,Android调用C#的Webservice的接口,就是通过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 }); };

 

目录
相关文章
|
27天前
|
JSON NoSQL MongoDB
实时计算 Flink版产品使用合集之要将收集到的 MongoDB 数据映射成 JSON 对象而非按字段分割,该怎么操作
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
29天前
|
JavaScript 前端开发 UED
在 JavaScript 中,异步编程和回调函数是处理非阻塞操作(如网络请求、文件读写等)的重要工具
【5月更文挑战第10天】JavaScript中的异步编程和回调函数用于处理非阻塞操作,提高应用响应性和吞吐量。异步编程通过回调函数、Promises和async/await等方式实现,避免程序因等待操作完成而阻塞。回调函数是异步操作完成后调用的函数,常用于处理网络请求等。然而,回调函数存在嵌套问题和错误处理困难,因此出现了Promises和async/await等更优解决方案。
17 3
|
1天前
|
JavaScript 前端开发 UED
JavaScript基础-DOM操作:查找、创建、修改
【6月更文挑战第12天】本文介绍了DOM基础,包括查找元素(getElementById、getElementsByClassName等)、创建新节点(createElement、createTextNode)和修改节点(innerText、innerHTML、setAttribute等)。强调了易错点,如ID唯一性、性能考量和安全问题,并提供了代码示例。熟练掌握DOM操作对前端开发至关重要,但应注意性能优化,适时使用框架或库。
JavaScript基础-DOM操作:查找、创建、修改
|
1天前
|
JSON 前端开发 JavaScript
在JavaScript中,异步编程是一种处理非阻塞操作(如网络请求、文件读写等)的重要技术
【6月更文挑战第12天】JavaScript中的异步编程通过Promise和async/await处理非阻塞操作。Promise管理异步操作的三种状态,防止回调地狱,支持链式调用和并行处理。async/await是ES8引入的语法糖,使异步代码更像同步代码,提高可读性。两者结合使用能更高效地处理复杂异步场景。
14 3
|
1天前
|
存储 JSON JavaScript
JavaScript基础-对象与JSON
【6月更文挑战第11天】本文介绍了JavaScript对象的创建(字面量、构造函数、Class)与操作,包括属性访问和描述符。同时讲解了JSON的性质及其与JS对象的关系,以及序列化和解析过程。文章还列举了三个常见易错点(属性访问错误、JSON格式错误、循环引用)并提供了避免策略。通过代码示例展示如何操作对象和处理JSON,强调实践对于掌握这些概念的重要性。
|
6天前
|
存储 JavaScript 安全
JS 监听用户页面访问&页面关闭操作并进行数据上报
JS 监听用户页面访问&页面关闭操作并进行数据上报 第一次进入页面时触发页面访问 刷新当前页面时触发页面访问 新 tab 进入页面时触发页面访问 当前页面点击 nav 进入其他模块时,触发页面关闭&页面访问 关闭页面时触发页面关闭
12 0
|
9天前
|
JSON JavaScript 数据格式
1.js动态的往json数据添加新属性和值 2.JSON 和 JS 对象互转 3.对象转化为数组
1.js动态的往json数据添加新属性和值 2.JSON 和 JS 对象互转 3.对象转化为数组
12 0
|
14天前
|
SQL JSON HIVE
数仓高频操作JSON篇
数仓高频操作JSON篇
16 0
|
17天前
|
存储 JavaScript 安全
JS 监听用户页面访问&页面关闭操作并进行数据上报
该文主要讨论了一个网页安全项目的需求和实现,涉及用户访问和离开页面时的数据报告。需求包括首次进入、刷新、新标签页打开、导航切换以及页面关闭时的数据发送。技术要点包括使用Cookie和SessionStorage存储信息,事件监听以及navigator.sendBeacon方法进行数据发送。实现策略包括轮询检测URL变化和在unload事件中触发页面关闭报告。文章还提到了相关流程图和代码示例,总结中强调了数据上报在用户行为分析中的重要性。
|
26天前
|
JSON 前端开发 JavaScript
前端 JS 经典:JSON 对象
前端 JS 经典:JSON 对象
21 0