json 的实现 | 学习笔记

简介: 快速学习 json 的实现,介绍了 json 的实现系统机制, 以及在实际应用过程中如何使用。

开发者学堂课程【Java Web开发系列课程 - Struts2框架入门json 的实现】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/537/detail/7327


json 的实现


使用 struts2 插件来实现 ajax 处理(返回 json 格式数据)

所谓的插件其实就是为了实现某一个功能,功能是多种多样的,有可能是拦截器。

插件在的包里面,凡是后面带着 plugin 的都是插件,有非常多,比如 jsf、json 等。

image.png插件基本上都会有插件的配置文件,如果要使用 json 的话,首先要把 json 的插件拿进来,导入一些包,里面有很多类去处理相关的操作。

首先要导入 ezmorph,这里面有一些处理 json 格式的类,去处理一些相关格式。

其实只需要把 json 的插件拿进来,缺少哪些包会进行提醒,然后再去导入相关的 jar 包就可以了。

查看在 struts 的插件:

<struts>

<package name="json-default"extends= "struts-default">

<result-types>

<result-typename="json"class="org.apache. struts2.json.JSONResult"/>

</result-types>

<interceptors>

<interceptorname="json"class="org.apache. struts2.json.JSONInterceptor"/>

</interceptors>

</package>

其中 json-default 是继承 struts-default,我们如果要使用要再继承 json-default 的 jar 包。

result-types 就是 json-default,interceptors 是拦截器,一般情况下都是通过拦截器把它拦截的。

把结果集的源码导进来,可以看到结果集。它里面的 root、execute 就是可以参考的。

image.pngConvention 的 plugin 也是一样,其中有一些常量,使用的话需要继承 convention-default

插件有以下几类,一般情况下是我们的处理集去处理,还有就是通过拦截器去处理,struts 就是这样一种作用,但他的处理对象是处理之后的结果,而不是处理之前的。

我们配置的其实是其中的 root,它里面所需要的类型包括属性等其实是本身带有的。

除了 struts 插件之外,其他的插件也是一样的,如果要使用需要去继承,处理的核心功能是拦截器。

现在就查看一下怎样处理,首先创建一个 java class 名为 jsonAction。

image.png

输入 action 代码为:

public class JsonAction {

private JSONArray root ;

public String execute(){

List<User> list = new Arraylist<User>( );

list.add(new User("siggy",23));

list.add(new User("zhangsan",22));

list.add(new User("老王",21));

root=JSONArray .fromObject(list);

System. out . println("json= "+root . toString( )) ;

return “success”;

}

public JSONArray getRoot() {

System. out . println("获取 root 数据") ;

return root ;

}

public void setRoot (JSONArray root) {

this.root = root;

}

其中的 root 名字可以随便取,需要另外配置一下。

在 structs.xml 里面的代码为:

<struts>

<packagename="default"extends= "json-default”namespace="/

<action name= "ajax" class= "cn. sxt. action.AjaxAction">

</action>

<action name="json" class= "cn. sxt. action. JsonAction">

<result type= "json">

<param name= "root">root< /param>

</result>

</action>

</package>

Struts 里面因为 action 里面是一个 list,struts 里面就是一个 json default。

配置的是 root,要去找他的 set 方法,然后再去配置。

Action 里面只是在后台写的代码,把 action 里面的代码复制一遍,输入到 json.jsp。

修改新代码为:

<body>

<input type="button" id= "btn" value= "获取json数据"/>

<table width="80%" align="center">

<tr>

<td>姓名</td>

<td>年龄</td>

</tr>

<tbody id="content">

</tbody>

</table>

</bady>

$(function( ){

$(' #btn').click(function(){

$. post ("json. action", function(data){

alert(data);

alert(data. length);

}, 'json');

});

});

</script>

在网页中打开 json.jsp,点击获取 json 数据,是一个一个的对象,因为后台写了三个对象,所以也显示三个对象。

在源代码中就调用了对象,在 execute 之后就调用了 struts,通过 action 对象调用 get方法。

得到数据之后在 json.jsp 里可以把数据处理一下,

alert(data);alert(data. length);

改为:

var html= 

for(var i=0;i<data. Length;i++){

html+="<tr><td>"+data[i].name+"</td><td>"+data[i]. age+"</td></tr>";

$(' #content ' ) . html (html);

}

写好之后再刷新网页,会发现数据到了网页上。

image.png

相关文章
|
8月前
|
JSON 前端开发 数据格式
前端学习笔记202306学习笔记第三十七天-js-认识json数据2
前端学习笔记202306学习笔记第三十七天-js-认识json数据2
39 0
|
4月前
|
JSON 前端开发 Java
Spring mvc-文件上传与JSON-学习笔记
Spring mvc-文件上传与JSON-学习笔记
37 2
|
8月前
|
JSON 前端开发 数据格式
前端学习笔记202307学习笔记第六十天-json server的介绍和服务搭建1
前端学习笔记202307学习笔记第六十天-json server的介绍和服务搭建1
53 0
|
8月前
|
JSON 前端开发 数据格式
前端学习笔记202306学习笔记第三十七天-js-认识json数据1
前端学习笔记202306学习笔记第三十七天-js-认识json数据1
37 0
|
8月前
|
JSON 前端开发 数据格式
前端学习笔记202306学习笔记第三十七天-js-认识json数据3
前端学习笔记202306学习笔记第三十七天-js-认识json数据3
39 0
|
9月前
|
JSON 数据格式 Python
python读取exlce并转为json的学习笔记
python读取exlce并转为json的学习笔记
60 0
|
11月前
|
JSON 数据格式
java202303java学习笔记第四十六天-请求-日期参数&json参数1
java202303java学习笔记第四十六天-请求-日期参数&json参数1
58 0
|
11月前
|
JSON 数据格式
java202303java学习笔记第四十六天-请求-日期参数&json参数2
java202303java学习笔记第四十六天-请求-日期参数&json参数2
45 0
|
11月前
|
JSON 数据格式
java202304java学习笔记第六十二天-ssm-页面跳转-回显数据json格式字符串
java202304java学习笔记第六十二天-ssm-页面跳转-回显数据json格式字符串
60 0
|
JSON NoSQL MongoDB
分布式服务器框架之Servers.Core库中实现MongoDB的ObjectId和Json转换
分布式服务器框架之Servers.Core库中实现MongoDB的ObjectId和Json转换