程序猿Web面试之JSON
JSON是什么?
JSON(JavaScript对象表示法), 是在网络通信下。经常使用的一种数据表达格式,它有助于我们于一个自描写叙述的,独立的和轻的方式呈现并交换数据。
这些数据能够易于和转换为JavaScript对象。

JSON格式的最大长处: 它能够被非常easy得被转换为一个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到server?
能够。
能够使用jQuery的“post”方法将数据发送到server。
以下是怎样post方法调用的样例,相同的。post有3个參数:
- 第一个參数,接受JSON数据的URL地址
- 第二个參数,是我们要发送的Json对象
- 第三个參数,是回调函数,我们收到回应的数据进行处理。
var mydata ={name:"Shiv",city:"Mumbai"};
$.post("/Send/Request", // URL
mydata , // Data to be sent
function(data,status){alert(data + “ “ + status);}); // Call back function
怎样把一个完整的HTML表单以JSON格式Post到server上?
首先,我们须要调用jQuery的”serialize“,把须要post的表单序列化为JSON对象。
然后,採用上面相似的办法进行post就可以。
完整代码例如以下:
var Mydata = $("#form1").serialize();
$.post("/Customer/getCustomer",JSON. stringify (MyData), DisplayData);
在后台(server),可通过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[“value”];
}
程序猿Web面试之JSON的更多相关文章
- 程序猿Web面试之jQuery
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/powertoolsteam/article/details/32325013 又到了一年一度的 ...
- 程序员Web面试之JSON
JSON是什么? JSON(JavaScript对象表示法), 是在网络通信下,常用的一种数据表达格式,它有助于我们于一个自描述的,独立的和轻的方式呈现并交换数据.这些数据可以易于和转换为JavaSc ...
- 程序员Web面试之前端框架等知识
基于前面2篇博客: 程序员Web面试之jQuery 程序员Web面试之JSON 您已经可以顺利进入Web开发的大门. 但是要动手干,还需要了解一些已有的前端框架.UI套件,即要站在巨人肩膀上而不是从轮 ...
- 程序员Web面试之jQuery
又到了一年一度的毕业季了,青春散场,却等待下一场开幕. 在求职大军中,IT行业的程序员.码农是工科类大学生的热门选择之一, 尤其是近几年Web的如火如荼,更是吸引了成千上万的程序员投身其中追求自己的梦 ...
- 【程序猿笔试面试复习】之中的一个 网络与通信篇(一) 几大网络模型:OSI、TCP/IP、B/S与C/S、MVC结构
9.1网络模型 9.1.1. OSI七层模型 OSI(Open System Interconnection,开放系统互联)七层网络模型称为开放式网络互联參考模型.其为国际标准组织指定的一个指导信息互 ...
- 【笔试面试】神马搜索C++程序猿电话面试
面试时间:2015.07.15 预约时间:2015.07.14.电话面试前一天,会电话咨询你方面电话面试的时间. 面试环节: 无自我介绍(这是我面试这么多家公司碰到的第一次),直接面试内容. 问题1: ...
- Java程序猿笔试面试之String1
1.怎样实现字符串的反转比如:"how are you"--->"you are how" public class InverseString { pu ...
- Java程序猿笔试面试之String4
怎样删除String中反复的字符good? 思想一:蛮力法,进行双重循环,此算法的复杂度为O(n^2),n是指字符串的长度 public class RemoveSameChar { public s ...
- Java程序猿笔试面试之String
1.怎样实现字符串的反转比如:"how are you"--->"you are how" 2.怎样推断2个字符串是否有同样的字符组成 比如"a ...
随机推荐
- eval()将json 字符串转换为数组
json ={ GW:[{id:"655",mc:"董事"},{id:"656",mc:"书记"},{id:" ...
- vscode配置python环境
修改 tasks.json 配置文件 找到.vscode文件夹下的tasks.json配置文件,拖进 Visual Studio Code 中进行修改. 也可以直接按Ctrl + Shift + p后 ...
- AIX RAC 安装失败完全卸载
1,删除软件安装目录 rm -rf /u01/app 2,删除以下目录内容 rm -rf/tmp/.oracle rm -rf/tmp/* rm -rf/tmp/ora* rm -rf/var/tmp ...
- ALTER USER - 改变数据库用户帐号
SYNOPSIS ALTER USER name [ [ WITH ] option [ ... ] ] where option can be: [ ENCRYPTED | UNENCRYPTED ...
- js如何判断数组是Array类型
在说明如何判断一个对象为数组类型前,我们先巩固下js的数据类型,js一共有六大数据类型:number.string.object.Boolean.null.undefined.var str=&quo ...
- jenkins构建项目记录1
jenkins安装见上篇随笔 1.新建任务 2.构建一个自由风格的软件项目 3.源码管理设置 4.构建环境 5.构建 6.构建后操作
- 在springBoot的控制台打印sql语句
在springBoot+Mybatis日志显示SQL的执行情况的最简单方法就是在properties新增: properties形式 logging.level.com.eth.wallet.mapp ...
- Buffer.allocUnsafe()
Buffer.allocUnsafe(size) size {Number} 分配一个 size 字节大小的新的非零填充(non-zero-filled)的 Buffer.size 必须小于等于 re ...
- c++基础_杨辉三角形
#include <iostream> using namespace std; int main(){ int n; cin>>n; ][]; ;i<n;i++){ a ...
- [Android] java代码无错误,但跳转失败
今天在调代码的时候,出现了这样的问题,我晕了半天,才找到解决办法. 查看日志发现:Initialize Binary Program Cache: Load Failed 从来没见过这种问题,Java ...