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 + &ldquo; &ldquo; + 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[&ldquo;value&rdquo;];
}

程序猿Web面试之JSON的更多相关文章

  1. 程序猿Web面试之jQuery

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/powertoolsteam/article/details/32325013  又到了一年一度的 ...

  2. 程序员Web面试之JSON

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

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

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

  4. 程序员Web面试之jQuery

    又到了一年一度的毕业季了,青春散场,却等待下一场开幕. 在求职大军中,IT行业的程序员.码农是工科类大学生的热门选择之一, 尤其是近几年Web的如火如荼,更是吸引了成千上万的程序员投身其中追求自己的梦 ...

  5. 【程序猿笔试面试复习】之中的一个 网络与通信篇(一) 几大网络模型:OSI、TCP/IP、B/S与C/S、MVC结构

    9.1网络模型 9.1.1. OSI七层模型 OSI(Open System Interconnection,开放系统互联)七层网络模型称为开放式网络互联參考模型.其为国际标准组织指定的一个指导信息互 ...

  6. 【笔试面试】神马搜索C++程序猿电话面试

    面试时间:2015.07.15 预约时间:2015.07.14.电话面试前一天,会电话咨询你方面电话面试的时间. 面试环节: 无自我介绍(这是我面试这么多家公司碰到的第一次),直接面试内容. 问题1: ...

  7. Java程序猿笔试面试之String1

    1.怎样实现字符串的反转比如:"how are you"--->"you are how" public class InverseString { pu ...

  8. Java程序猿笔试面试之String4

    怎样删除String中反复的字符good? 思想一:蛮力法,进行双重循环,此算法的复杂度为O(n^2),n是指字符串的长度 public class RemoveSameChar { public s ...

  9. Java程序猿笔试面试之String

    1.怎样实现字符串的反转比如:"how are you"--->"you are how" 2.怎样推断2个字符串是否有同样的字符组成 比如"a ...

随机推荐

  1. Node.js——基本服务开启

    标注模式 var http = require('http'); var server = http.createServer(); server.on('request', function (re ...

  2. laravel学习:模块化caffeinated

    # Modules Extract and modularize your code for maintainability. Essentially creates "mini-larav ...

  3. [转]解决右键用notepad++打开提示【ShellExecute failed (2): Is this command Correct? (Fix) 】

    最近发现右键使用notepad++打开文件时提示如下错误: ShellExecute failed (2): Is this command Correct? ... 经用搜索引擎搜索得知,应该是开启 ...

  4. SQL server 表操作语句(原创)

    CREATE TABLE [dbo].[test] ([id11] int NOT NULL ,[as] varchar(1) COLLATE Chinese_PRC_CI_AS NULL ,[asd ...

  5. BZOJ 4464 旅行时的困惑 最小流

    题面: Waldives 有 N 个小岛.目前的交通系统中包含 N-1 条快艇专线,每条快艇 专线连接两个岛.这 N-1条快艇专线恰好形成了一棵树. 由于特殊的原因,所有N-1条快艇专线都是单向的.这 ...

  6. centos6 rpm安装mysql(5.5版本)包括 error : Failed dependencies:libaio的解决办法.

    1.先在/opt目录下放了两个rpm包 2.先看系统中是否有其他版本的mysql的rpm包 rpm -qa | grep -i mysql 命令结果如下图: 如果没有此步跳过,否则执行一下命令将其删除 ...

  7. 使用ajax出现canceled情况

    在使用ajax的时候要注意,在只定义了一个ajax请求对象的全局变量时,如果同打开发送了一个请求,但在请求还未结束时,又利用这一个全局变量发送另外一个ajax请求,就会出现某一个请求的状态码为canc ...

  8. form 表单onclick事件 禁止表单form提交

    最近遇到一次处理form数据的过滤,采用了button的onclick事件来检查,发现return false后表单仍然提交了. 于是仔细研究了下onclick.onsubmit.submit集合函数 ...

  9. hadoop_exporter python版本的安装使用

    1.需要使用python pip 参考https://www.cnblogs.com/rain124/p/6196053.html python2.7.5 安装pip 1 先安装setuptools ...

  10. 判断List集合为空

    package org.springframework.util; CollectionUtils.isEmpty(list)