展会信息港展会大全

如何使用spring-android在android客户端,反序列化服务端返回的...
来源:互联网   发布日期:2016-01-14 12:10:09   浏览:2725次  

导读:[ { courseEngName: Exercises of Macroeconomics, courseId: 02530071, courseName: 宏观经济学习题课, credits: 0, setupFor: , totalHrs: 30, weekHrs: 2 }, { courseEngName: Intermediate Macroeconomics, courseId: 06232300, courseName: 中级宏观经...

[

{

courseEngName: "Exercises of Macroeconomics",

courseId: "02530071",

courseName: "宏观经济学习题课",

credits: "0",

setupFor: "",

totalHrs: "30",

weekHrs: "2"

},

{

courseEngName: "Intermediate Macroeconomics",

courseId: "06232300",

courseName: "中级宏观经济学",

credits: "4",

setupFor: "",

totalHrs: "60",

weekHrs: "4"

}

]

/**

* 然后配置restTemplate

*/

static {

restTemplate = new RestTemplate();

//json 消息的处理器 在这里我们使用jackson

MappingJacksonHttpMessageConverter converter = new MappingJacksonHttpMessageConverter();

ObjectMapper objectMapper = new ObjectMapper();

//忽略不识别的字段

objectMapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);

//单个数值也可当做数组处理

objectMapper.configure(DeserializationConfig.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);

//设置json映射器

converter.setObjectMapper(objectMapper);

//设置支持的响应content-Type

converter.setSupportedMediaTypes(Collections.singletonList(new MediaType("text", "javascript")));

restTemplate.getMessageConverters().add(converter);

restTemplate.getMessageConverters().add(new StringHttpMessageConverter());

restTemplate.getMessageConverters().add(new FormHttpMessageConverter());

restTemplate.getMessageConverters().add(new ResourceHttpMessageConverter());

}

/**

* 发送get请求获取对象

*

* @param uri

* @param returnType 返回类型

* @param <T>对象类型

* @return

*/

public static <T> T getForObject(String uri, Class<T> returnType) throws RestClientException {

String url = getUrl(uri);

Log.d("http get", url);

HttpEntity<T> httpEntity = new HttpEntity<T>(getHeader());

T data = null;

try {

data = restTemplate.exchange(url, HttpMethod.GET, httpEntity, returnType).getBody();

} catch (Exception e) {

}

return data;

}

/**

* 发送post请求获取对象

* @param uri

* @param object

* @param returnType

* @param <T>

* @return

* @throws RestClientException

*/

public static <T> T postForObject(String uri, T object, Class<T> returnType) throws RestClientException {

String url = getUrl(uri);

HttpEntity<T> httpEntity = new HttpEntity<T>(object, getHeader());

Log.d("http post", url);

return restTemplate.exchange(url, HttpMethod.POST, httpEntity, returnType, object).getBody();

}

/**

* 发送put请求获取对象

* @param uri

* @param object

* @param returnType

* @param <T>

* @return

* @throws RestClientException

*/

public static <T> T putForObject(String uri, T object, Class<T> returnType) throws RestClientException {

HttpEntity<T> httpEntity = new HttpEntity<T>(object, getHeader());

String url = getUrl(uri);

Log.d("http put", url);

return restTemplate.exchange(url, HttpMethod.PUT, httpEntity, returnType).getBody();

}

/**

* 发送delete请求获取对象

* @param uri

* @param returnType

* @param <T>

* @return

* @throws RestClientException

*/

public static <T> T deleteForObject(String uri, Class<T> returnType) throws RestClientException {

HttpEntity<T> httpEntity = new HttpEntity<T>(getHeader());

String url = getUrl(uri);

Log.d("http delete", url);

return restTemplate.exchange(url, HttpMethod.DELETE, httpEntity, returnType).getBody();

}

/**

* 最后按照json格式定义dto类

*/

public class Lesson {

private String courseEngName;

private String courseId;

private String courseName;

private String credits;

private String setupFor;

private String totalHrs;

private String url;

private String weekHrs;

//一定不要覆盖默认构造方法

public Lesson() {

}

public String getCourseEngName() {

return courseEngName;

}

public void setCourseEngName(String courseEngName) {

this.courseEngName = courseEngName;

}

public String getCourseId() {

return courseId;

}

public void setCourseId(String courseId) {

this.courseId = courseId;

}

public String getCourseName() {

return courseName;

}

public void setCourseName(String courseName) {

this.courseName = courseName;

}

public String getCredits() {

return credits;

}

public void setCredits(String credits) {

this.credits = credits;

}

public String getSetupFor() {

return setupFor;

}

public void setSetupFor(String setupFor) {

this.setupFor = setupFor;

}

public String getTotalHrs() {

return totalHrs;

}

public void setTotalHrs(String totalHrs) {

this.totalHrs = totalHrs;

}

public String getWeekHrs() {

return weekHrs;

}

public void setWeekHrs(String weekHrs) {

this.weekHrs = weekHrs;

}

}

dependencies {

//首先使用gradle引入spring for android 库

compile 'org.springframework.android:spring-android-rest-template:1.0.1.RELEASE'

//以及json序列化反序列化工具jackson

compile 'org.codehaus.jackson:jackson-mapper-asl:1.9.12'

}

赞助本站

人工智能实验室

相关热词: android开发 android教程

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港