文档章节

程序员Web面试之JSON

葡萄城技术团队
 葡萄城技术团队
发布于 2014/06/26 14:36
字数 864
阅读 116
收藏 1

JSON是什么?

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

 

 

 

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

<script type="text/javascript">  JSONObject="name":"John Johnson""street":"Oslo West 555""age":33"phone":"555 1234567"</script>

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

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

有2点不同:

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

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

untitled

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

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

如下所示:

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

=, UriTemplate=, RequestFormat== GetData();

&#160;

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

<Customer> obj1 =  List<Customer>= =

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

DataContractJsonSerializer serializer = =  json ==

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

&#160;

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

= =

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

$.getJSON("/Employee/getEmployee",

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对象

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

 mydata ={name:"Shiv",city:"Mumbai""/Send/Request", mydata , (data,status){alert(data + &ldquo; &ldquo; + status);});

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

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

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

完整代码如下:

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

&#160;

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

System.IO.Stream body ==  s =   reader.ReadToEnd() ;

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

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

 jsonser =  obj = jsonser.Deserialize<dynamic> ( x = x[&ldquo;value&

© 著作权归作者所有

共有 人打赏支持
葡萄城技术团队

葡萄城技术团队

粉丝 329
博文 497
码字总数 716416
作品 17
西安
高级程序员
前端笔试、面试

让 BAT 的 Offer 不再难拿 随着各大公司春招的开始,很多小伙伴都行动起来了,我有幸能够加入百度并和大家分享自己的经验心得。由于我面试的都是比较大的公司,所以自然也是做了这方面的准备...

掘金官方
01/11
0
0
数据说话:怎样的程序员最抢手?

你们想不想成为最抢手的程序员?迎娶白富美,走上人生巅峰? 1、什么样的程序员涨薪最多? 安卓、iOS、Web前端薪资涨幅都较其他语言要高。对单个程序员来说,想要获得较高的薪资涨幅,选定热门...

张丫丫
2015/01/27
604
10
开发工具总结(7)之多年珍藏的Android开发必备网站和工具

【前言】工欲善其事,必先利其器。搞开发多年了,会收藏一些干货网站和工具,辅助开发,提高开发效率。下面一次性分享给大家。喜欢的朋友们点个赞吧。 说明:这些是我收藏的网站,感觉还是不...

AWeiLoveAndroid
01/08
0
0
大数据告诉你:程序员如何涨薪水

美国队长:这怎么知道? 国防军官:这怎么不知道,21世纪就是本数码书。佐拉教会九头蛇怎么去读它,你的银行记录、病例、投票模式、电子邮件、通话信息、还有大学成绩单...左拉的算法会评估人...

丨小丶牧灬
2015/06/29
3.4K
2
百词斩Java程序员面试11个问题,你会几个?2018-04-10

近日,我们在w3cschool app开发者头条上,可以看到百词斩Java程序员面经。 在分享百词斩Java面经前,w3cschool特别给程序员小伙伴们带来一些Java学习干货: 0、学习Java必备的3大神器 如果你...

W3Cschool
04/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

高三暑假我是怎么想开去学linux系统的

高三的时候,我有一句口头禅:“老了老了,现在做题越来越迟钝了”。当时整天日夜苦读,体重日益增加,脸色越来越黯淡,我在终于熬过了高考的时候,简直心里面乐得开了花。我终于可以去做自己...

linuxprobe16
9分钟前
0
0
Python 获得命令行参数的方法

需要模块:sys 参数个数:len(sys.argv) 脚本名: sys.argv[0] 参数1: sys.argv[1] 参数2: sys.argv[2]

编程老陆
16分钟前
0
0
链队

队列用链表来表示时,需要用两个变量来记录队列两端的变化:theFront,theBack. 根据链接方向的不同,链队有两种链接方式(其实就是链表的头插入节点和尾插入节点,头删除节点和尾删除节点)。...

Frost729
19分钟前
0
0
IDEA toString() json模板

public java.lang.String toString() {java.lang.StringBuilder builder = new java.lang.StringBuilder();#set ($i = 0)#foreach ($member in $members)#if ($i == 0)builder.appen......

Mtok
29分钟前
0
0
Dubbo内核实现之SPI简单介绍

Dubbo采用微内核+插件体系,使得设计优雅,扩展性强。那所谓的微内核+插件体系是如何实现的呢!即我们定义了服务接口标准,让厂商去实现(如果不了解spi的请谷歌百度下), jdk通过ServiceLo...

明理萝
34分钟前
0
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部