json

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了json相关的知识,希望对你有一定的参考价值。

Ajax:是一种异步请求的技术,主要是javascript里面的 XMLHttpRequest对象的使用。其全称为Asynchronous Javascript And Xml。名为:异步java脚本和可扩展标记语言。这里面拉了xml进来。原因在于当时xml作为数据传递最火的方式,javascript利用各种方式让自己变得流行。渐渐地出现了一种新的数据传输格式的载体json。这时候这个异步传输就基本可以换一个名字了叫做:ajaj,我起的名字【笑哭。】

先来简单复习:

异步请求指的是:在不影响用户操作的情况下,可以向服务器发送请求,同时可以接收服务器的响应。

Ajax的组成部分有:javascript html css xml dom 其最重要的组成部分是XMLHttpRequest对象。

 

异步请求的步骤:

1、创建异步请求的对象, new XMLHttpRequest()

2、基于当前已经创建的异步请求对象,打开连接: 

open(method,url,asynchronous,username,password);后面这个两个参数就是问号传值,可以得到的【没有实现,问了一下老师,老师是这么说的,真伪没有验证。】

3、设置回调函数,用来处理当前异步请求得到的服务器的反馈。【可以使用匿名函数】

4、发送请求,有内容,就发对应的内容比如input标签体,或者xmlstring,或者等等内容,如果没有的话,就放一个null,来标识发送当前请求。当请求方式为get时,搞表单就是搞不出来。

5、创建回调函数,在回调函数中,处理服务器响应回来的信息。首先要判断一下异步请求的状态,只有当请求的状态是4也就是异步交互完成的时候。并且http协议为200的时候,采取对响应进行处理。

 

在响应过程中可以携带数据。

geturl地址传值方式,或者 请求头方式传递参数。这种状况下,不能通过表单方式传递数据

1、xmlHttpRequest.open("get", "TestServlet.do?username="+username, true);

2、xmlHttpRequest.setRequestHeader("name", name);

posturl地址传值方式,请求头方式传递信息,或者通过将请求头设置为

1、xmlHttpRequest.open("post", "TestServlet3.do?name="+name, true);

2、xmlHttpRequest.setRequestHeader("age", age);

3、xmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

且:xmlHttpRequest.send("email="+email+"&age=23&name=lifei");

 

前面说到了ajax命名的来源。如果不用这几种方式或者传递较多信息时,就采用xml的方式传递信息此时要将请求头信息设置为:   setRequestHeader("Content-Type","text/xml");

然后在发送请求时:发送:send(xmlString).

在控制层利用request.getReader();来得到一组数据。这个里面得到的是send里面发送的东西,并不含有其他的什么东西。

刚刚完成了xml的传递与解析。

其实异步请求的时候不仅可以请求服务器的动态数据,也可以请求在服务器端的静态内容也就是xml文件。二级联动的通过省份点击获得对应市的菜单就是这样一个例子。

 

开头我们说了,xml已经过了气了,这个时候对于异步传输来说,有一种更加火爆的方式,json学名为:JavaScript Object Notation,汉语对应学名为:java脚本 对象 符号。

Json之所以火爆是因为:

1、轻量级的数据交换格式

2、读写更加容易

3、易于机器的解析和生成【主要是速度上】

4、能够通过JavaScript中的eval()函数解析JSON

5、Json支持多种语言。包括:ActionScriptCC#ColdFusionEJavaJavascriptMLobjective CAML,PerlphpPythonRebolRubyLua等等。

以上是关于json的主要内容,如果未能解决你的问题,请参考以下文章

JNA简单范例

Atitit.java jna  调用c  c++ dll的原理与实践  总结  v2 &

Linux下JNA 调用 so 库

java用jna调用C语言dll接口中的回调函数怎么写

Java跨语言调用,使用JNA访问Java外部接口

使用 POSIX 消息队列运行 JNA 示例