JSON是什么?

JSON(JavaScript对象表示法), 是在网络通信下,常用的一种数据表达格式,它有助于我们于一个自描述的,独立的和轻的方式呈现并交换数据。这些数据可以易于和转换为JavaScript对象。

JSON格式的最大优点: 它可以被很容易得被转换为一个javascript对象。例如,下面的代码片段中看到的,我们有一个JSON格式的数据里面有“姓名”,“街道”,“年龄”和“手机”。

<script type="text/javascript"> var JSONObject= {"name":"John Johnson","street":"Oslo West 555",
"age":33,"phone":"555 1234567"};
alert(JSONObject.name);
</script>

现在,这个数据可以直接使用,如我们可获得JSONObject的对象,并很方便的调用其“name”属性。

是否用SOAP可以做JSON同样的事情呢?

有2点不同:

首先,SOAP是用XML标签表达,比较重。JSON比较轻,纯数据。

其次,最重要的是,JSON可直接转换为javascript对象。同样的要转换SOAP XML为javascript对象是较繁琐的任务。

是否所有的技术都支持JSON?

是的,几乎所有的数据交换都支持JSON。

如下所示:

WCF服务:如果你想你的WCF服务应该发送JSON消息,而不是SOAP,可以设置“ResponseFormat”作为你的操作协定“WebMessageFormat.Json”。

[OperationContract]
[WebInvoke(Method="GET", UriTemplate="/GetData", RequestFormat=WebMessageFormat.Json,ResponseFormat=WebMessageFormat.Json)]string GetData();

MVC:如果你希望MVC返回JSON数据;通过调用Json,可返回JSON格式的Customer对象。

public JsonResult  CustomerJson()
{List<Customer> obj1 = new List<Customer>();Thread.Sleep(5000);Customer obj = new Customer();obj.CustomerCode = "1001";obj1.Add(obj);return Json(obj1,JsonRequestBehavior.AllowGet);
}

ASP.NET: 如果你想使用ASP.NET返回JSON,我们需要使用“DataContractJsonSerializer”类。

DataContractJsonSerializer serializer = new DataContractJsonSerializer(myPerson.GetType());
MemoryStream ms = new MemoryStream();
serializer.WriteObject(ms, myPerson);string json = System.Text.Encoding.UTF8.GetString(ms.ToArray());
Response.Clear();
Response.ContentType = "application/json;charset=utf-8";
Response.Write(json);
Response.End();

使用jQuery如何进行一个JSON调用?

如在一个MVC中,可通过“getEmployee”函数返回employ的JSON对象。

public JsonResult  getEmployee()
{
Emp obj = new Emp();
obj.empcode = "1001";return Json(obj,JsonRequestBehavior.AllowGet);
}

我们用jQuery的getJson函数,来调用上述MVC函数返回的JSON对象即可。

$.getJSON("/Employee/getEmployee", null, getData);function getData(data)
{
alert(data.empcode);
}

jQuery的getJson函数有三个参数:

  • 第一个参数,获取JSON数据的URL地址。

  • 第二个参数,可以将数据传递到URL的MVC操作。目前,我们只是做一个get操作,故第二个参数为NULL。

  • 第三个参数,在JavaScript中,用回调函数对返回的Employee对象进行处理。

因为输出是JSON,它会自动将JSON数据转换为JavaScript对象。你可直接使用“getData”函数显示了“data.empcode”属性,非常便捷。

是否可以将JSON对象Post到服务器?

可以。

可以使用jQuery的“post”方法将数据发送到服务器。

下面是如何post方法调用的例子,同样的,post有3个参数:

  • 第一个参数,接受JSON数据的URL地址

  • 第二个参数,是我们要发送的Json对象

  • 第三个参数,是回调函数,我们收到回应的数据进行处理。

var mydata ={name:"Shiv",city:"Mumbai"};
$.post("/Send/Request", // URLmydata , // Data to be sentfunction(data,status){alert(data + &ldquo; &ldquo; + status);}); // Call back function

如何把一个完整的HTML表单以JSON格式Post到服务器上?

首先,我们需要调用jQuery的”serialize“,把需要post的表单序列化为JSON对象。

然后,采用上面类似的办法进行post即可。

完整代码如下:

var Mydata = $("#form1").serialize();
$.post("/Customer/getCustomer",JSON. stringify (MyData), DisplayData);

在后台(服务器),可通过inputStream进行捕获JSON数据流。

System.IO.Stream body = Request.InputStream;
System.IO.StreamReader reader = new System.IO.StreamReader(body);string s =   reader.ReadToEnd() ;

我们怎样才能把JSON字符串转换为C#对象?

要转换一个JSON字符串到C#对象,我们需要使用“JavaScriptSerializer”类,并使用“反序列化”,我们将字符串转换为C#对象。

var jsonser = new JavaScriptSerializer()var obj = jsonser.Deserialize<dynamic>(JsonString);foreach (var x in obj)
{String strvalue = x[&ldquo;value&rdquo;];
}

本文转自 powertoolsteam 51CTO博客,原文链接:http://blog.51cto.com/powertoolsteam/1431175,如需转载请自行联系原作者

程序员Web面试之JSON相关推荐

  1. 程序员Web面试之前端框架等知识

    基于前面2篇博客: 程序员Web面试之jQuery 程序员Web面试之JSON 您已经可以顺利进入Web开发的大门. 但是要动手干,还需要了解一些已有的前端框架.UI套件,即要站在巨人肩膀上而不是从轮 ...

  2. 前后端解析_好程序员Web前端教程分享前后端分离接口

    随着互联网的高速发展以及IT开发技术的升级,前后端分离已成为互联网项目开发的业界标准使用方式.在实际工作中,前后端的接口联调对接工作量占Web前端人员日常工作的30%-50%,甚至会更高.接下来的好程 ...

  3. 以技术面试官的经验分享毕业生和初级程序员通过面试的技巧(Java后端方向)...

    本来想分享毕业生和初级程序员如何进大公司的经验,但后来一想,人各有志,有程序员或许想进成长型或创业型公司或其它类型的公司,所以就干脆来分享些提升技能和通过面试的技巧,技巧我讲,公司你选,两厢便利. 毕 ...

  4. js怎么定义combobox_好程序员web前端教程分享新手应该怎么学习webpack

    好程序员web前端教程分享新手应该怎么学习webpack,什么是webpack?一句话概括:webpack是一个模块打包工具(module bundler).重点在于两个关键词"模块&quo ...

  5. 好程序员Web前端分享无法忽视的JavaScript技巧

    好程序员Web前端培训分享无法忽视的JavaScript技巧.在大家从事web前端的工作中,很容易忽视一些JavaScript的小技巧,今天为大家总结了一些容易被大家忽略的技巧,希望能够对大家有所帮助 ...

  6. react组件卸载调用的方法_好程序员web前端培训分享React学习笔记(三)

    好程序员web前端培训分享React学习笔记(三),组件的生命周期 React中组件也有生命周期,也就是说也有很多钩子函数供我们使用, 组件的生命周期,我们会分为四个阶段,初始化.运行中.销毁.错误处 ...

  7. advanced installer更换程序id_好程序员web前端培训分享kbone高级-事件系统

    好程序员web前端培训分享kbone高级-事件系统:1.用法,对于多页面的应用,在 Web 端可以直接通过 a 标签或者 location 对象进行跳转,但是在小程序中则行不通:同时 Web 端的页面 ...

  8. vue如何获取年月日_好程序员web前端教程分享Vue相关面试题

    好程序员web前端教程分享Vue相关面试题,Vue是一套构建用户界面的渐进式框架,具有简单易用.性能好.前后端分离等优势,是web前端工程师工作的好帮手,也是企业选拔人才时考察的重点技能.接下来好程序 ...

  9. addeventlistener不支持ajax_好程序员web前端学习路线分享了解AJAX是什么

    好程序员web前端学习路线分享了解AJAX是什么首先是服务器 什么是服务器:咱们的页面来源于服务器:实例(在phpnwo上面存放一个页面), 咱们把页面放在互联网的服务器上,就有了自己的网站了. 1. ...

最新文章

  1. vue 点击div 获取位置_Vue中组件之间8种通信方式,值得收藏
  2. Java基础day4
  3. python三维数组怎么表示_python – numpy中的三维数组
  4. 解决:AttributeError: module 'pygal' has no attribute 'Worldmap' 问题
  5. java继承方法规则或规律
  6. iosetup mysql_InnoDB: Error: io_setup() failed with EAGAIN after 5 attempt
  7. 免费数据集获取加速器|Graviti Open Datasets
  8. 某程序员10个月时间做了30个私活单子,纯收入40万?
  9. 关于python文件打开模式表示错误的是_python文件读取失败了该怎么处理 !
  10. 中国裁判文书网爬虫分析
  11. DolphinDB:金融高频因子流批统一计算神器!
  12. 贴片天线的HFSS和CST仿真对比
  13. v-for on stateful component root element because it renders multiple elements
  14. 钜泉光电2018年 IC校招笔试题目
  15. cocos2d-x公开课视频 (感谢 无脑码农和龙灵修)
  16. Android实现更换头像功能(适配Android7.0版本)
  17. 转:C++资源之不完全导引
  18. 关于程序员找工作的最好渠道,你可能听都没听过!
  19. 大学计算机课实验,大学计算机课程实验教学平台的设计与实现
  20. 面对200多人演讲是一种什么体验?

热门文章

  1. poj 2528 Mayor's posters (线段树+离散化)
  2. vs设置语言后引用dll的一个错误
  3. [Flask+Vue]Books全栈应用
  4. 机器人学习--室内定位的通信学科背景方法
  5. MFC中动态创建控件以及事件响应实现方法
  6. ubuntu 环境下调试mysql源码_【转】Ubuntu 16.04下 Mysql 5.7.17源码编译与安装
  7. mysql入门操作_对MySQL的几个入门操作
  8. 第四范式恭祝大家新年快乐!
  9. 来伊份与第四范式宣布战略合作 携手打造智慧零售新范本
  10. tensorflow随笔-条件循环控制(2)