jersey - json(jsonp 跨域)格式交互

简介: JacksonFeature.class 在使用Tomcat作为HttpServer时,需要特别注意,实现java对象到json的解析时必须注册到JacksonFeature类,自己写的MyProvider不行。 //自己写MyProvider 不能用,不知道为什么@Providerpublic class MyProvider implements ContextResolv

JacksonFeature.class

在使用Tomcat作为HttpServer时,需要特别注意,实现java对象到json的解析时必须注册到JacksonFeature类,自己写的MyProvider不行。

//自己写MyProvider 不能用,不知道为什么
@Provider
public class MyProvider implements ContextResolver<ObjectMapper> {
	public ObjectMapper getContext(final Class<?> type) {
		final ObjectMapper mapper=new ObjectMapper();
		return mapper ;
	}
}

class JacksonFeature所在的jar为jersey-media-json-jackson-2.5.jar,这个jar只有它一个类。


它的maven依赖为:

<dependency>
	<groupId>org.glassfish.jersey.media</groupId>
	<artifactId>jersey-media-json-jackson</artifactId>
	<version>2.5</version>
</dependency>

主文件写法见下:

package com.likeyichu.webservice;

import org.glassfish.jersey.jackson.JacksonFeature;
import org.glassfish.jersey.server.ResourceConfig;

public class App extends ResourceConfig {
<span style="white-space:pre">	</span>public  App() {
<span style="white-space:pre">		</span>//向jersey框架注册资源类,凡完全限定名是以指定字符串开头的类,都将包含
<span style="white-space:pre">		</span>packages("com.likeyichu.webservice");
<span style="white-space:pre">		</span>register(JacksonFeature.class);
<span style="white-space:pre">	</span>}
}


getter()

要序列化为json的对象应该实现setter与getter方法。可以定义完成员变量后用Eclipse自动生成,见下图。


效果


注意

若一个类想要被序列化,必须有public 权限。
加@Produces标注的函数,函数名不要以“get”开头,不然jackson会无穷递归下去。

jersey-jsonp

@org.glassfish.jersey.server. JSONP
jersey框架帮我们返回jsonp格式的内容。一个实例:
@Path("jsonp")
	@GET
	@JSONP(queryParam="callback")//返回的函数名与http请求中的callback参数的值一致
	@Produces("application/x-javascript")  	//这里最好写成application/x-javascript
	public Student wsStudent2( ) {
		return new Student();
	}
效果:

jersey-post

@Path("post")
	@POST
	@Consumes(MediaType.APPLICATION_JSON)  //因为这行,wsStudent3()的形参remoteStudent会被jersey注入
	@Produces(MediaType.APPLICATION_JSON)
	public Student wsStudent3(Student remoteStudent) {
		Student student= new Student();
		student.setName(student.getName()+remoteStudent.getName());
		return student;
	}



目录
相关文章
|
1月前
|
XML 存储 JSON
Python学习 -- 常用数据交换格式(CSV、XML、JSON)
Python学习 -- 常用数据交换格式(CSV、XML、JSON)
15 0
|
2月前
|
存储 JSON 数据挖掘
CSV和JSON格式的数据在python上的处理
CSV和JSON数据类型都是都是常见的两种在python中的数据分析类型,这里我有两个入门项目详细讲解这两种数据的处理。
|
2月前
|
JSON JavaScript 数据格式
JS 将 json 对象转成字符串并保留格式 - JSON.stringify()
JS 将 json 对象转成字符串并保留格式 - JSON.stringify()
43 0
|
4天前
|
JSON C# 数据格式
C# 处理gzip格式的json
C# 处理gzip格式的json
7 0
|
24天前
|
XML 机器学习/深度学习 JSON
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
18 0
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
|
30天前
|
JSON 数据格式
将json格式的数据快速转换为excel,使用在线工具轻松搞定
将json格式的数据快速转换为excel,使用在线工具轻松搞定
23 0
|
1月前
|
JSON 关系型数据库 MySQL
这个问题是由于Flink的Table API在处理MySQL数据时,将MULTISET类型的字段转换为了JSON格式
【1月更文挑战第17天】【1月更文挑战第84篇】这个问题是由于Flink的Table API在处理MySQL数据时,将MULTISET类型的字段转换为了JSON格式
19 1
|
1月前
|
JSON Java API
Spring Boot 无侵入式 实现API接口统一JSON格式返回
Spring Boot 无侵入式 实现API接口统一JSON格式返回
|
1月前
|
JSON 安全 算法
JSON Web Token(缩写 JWT) 目前最流行、最常见的跨域认证解决方案
JSON Web Token(缩写 JWT) 目前最流行、最常见的跨域认证解决方案
60 0
|
2月前
|
XML JSON Java
Android App网络通信中通过okhttp调用HTTP接口讲解及实战(包括GET、表单格式POST、JSON格式POST 附源码)
Android App网络通信中通过okhttp调用HTTP接口讲解及实战(包括GET、表单格式POST、JSON格式POST 附源码)
28 0

相关产品

  • 云迁移中心