restlet2.1 学习笔记(六) 获取、返回JSON类型参数
2013-08-06 10:53
351 查看
JSON类型的参数与返回值,在客户端使用Ajax访问服务端时会非常有用。
加入:org.json.jar org.restlet.ext.json.jar 如果要用Jackson工具,就再加入org.codehaus.jackson.core.jar org.codehaus.jackson.mapper.jar org.restlet.ext.jackson.jar
一、返回简单Json类型
服务端
客户端
启动服务器后,在浏览器输入http://localhost:8888 将会看到输出字符串:{"name":"速度与激情6","size":1000000,"minutes":120}
使用restlet库开发客户端
二、接收简单Json类型
服务端:
三、使用jackson工具直接将java对象转换为Representation或将Representation快速转换为Java对象
因为服务端资源方法比较多,所以这次服务端使用了两个资源类分别为MovieResourceJson.java 、MovieResourceJackson.java
Server的代码也发生了变化,为每个Resource分别绑定URI
然后如果是访问MovieResourceJson.java中的get方法,需要访问http://localhost:8888/json
然后如果是访问MovieResourceJackson.java中的get方法,需要访问http://localhost:8888/jackson
其他方法同上
加入:org.json.jar org.restlet.ext.json.jar 如果要用Jackson工具,就再加入org.codehaus.jackson.core.jar org.codehaus.jackson.mapper.jar org.restlet.ext.jackson.jar
一、返回简单Json类型
服务端
/** * 返回简单JSON类型 */ @Get public Representation getMovieInfo() throws JSONException{ JSONObject mailEle = new JSONObject() ; mailEle.put("name", "速度与激情6") ; mailEle.put("size", 100000l) ; mailEle.put("minutes", 120) ; return new JsonRepresentation(mailEle) ; }
客户端
启动服务器后,在浏览器输入http://localhost:8888 将会看到输出字符串:{"name":"速度与激情6","size":1000000,"minutes":120}
使用restlet库开发客户端
@Test public void test02() throws IOException, JSONException{ ClientResource client = new ClientResource("http://localhost:8888/"); //获取返回结果 Representation result = client.get() ; JsonRepresentation jr = new JsonRepresentation(result); JSONObject movie = jr.getJsonObject(); System.out.printf("name:%s size:%d minutes:%d" , movie.get("name") , movie.get("size"), movie.get("minutes")); }
二、接收简单Json类型
服务端:
/** * 接收简单Json类型数据 */ @Put public String uploadMovie(JsonRepresentation mivieJson) throws JSONException{ JSONObject movie = mivieJson.getJsonObject(); String result = String.format("upload movie{name:%s size:%d minutes:%d} success!" , movie.get("name") , movie.get("size"), movie.get("minutes")); return result ; }使用restlet库开发客户端
@Test public void test03() throws IOException, JSONException{ ClientResource client = new ClientResource("http://localhost:8888/json"); JSONObject mailEle = new JSONObject() ; mailEle.put("name", "速度与激情6") ; mailEle.put("size", 100000l) ; mailEle.put("minutes", 120) ; JsonRepresentation jr = new JsonRepresentation(mailEle); Representation result = client.put(jr); System.out.println(result.getText()); }
三、使用jackson工具直接将java对象转换为Representation或将Representation快速转换为Java对象
/** * 将复杂对象使用Json格式返回 */ @Get public Representation getMovieInfo(){ Movie movie = new Movie() ; movie.setName("速度与激情6"); movie.setSize(1000000l); movie.setMinutes(120); return new JacksonRepresentation<Movie>(movie); }
/** * 将接收到的Json对象直接转换成java对象 * @param rp * @return * @throws IOException */ @Put public String updateMovieInfo(Representation rp) throws IOException{ JacksonRepresentation<Movie> movidRep = new JacksonRepresentation<Movie>(rp , Movie.class); Movie movie = movidRep.getObject() ; String result = String.format("upload movie{name:%s size:%d minutes:%d} success!" , movie.getName() , movie.getSize(), movie.getMinutes()); return result ; }
因为服务端资源方法比较多,所以这次服务端使用了两个资源类分别为MovieResourceJson.java 、MovieResourceJackson.java
Server的代码也发生了变化,为每个Resource分别绑定URI
public static void main(String[] args) throws Exception { Component comp = new Component() ; comp.getServers().add(Protocol.HTTP, 8888) ; comp.getDefaultHost().attach("/json", MovieResourceJson.class) ; comp.getDefaultHost().attach("/jackson", MovieResourceJackson.class) ; comp.start(); }
然后如果是访问MovieResourceJson.java中的get方法,需要访问http://localhost:8888/json
然后如果是访问MovieResourceJackson.java中的get方法,需要访问http://localhost:8888/jackson
其他方法同上
相关文章推荐
- restlet2.1 学习笔记(四) 获取、返回XML类型参数
- restlet2.1 学习笔记(三) 获取简单请求参数
- restlet2.1 学习笔记(七) 与Freemarker结合返回Html视图
- ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 用javascript在客户端删除某一个cookie键值对 input点击链接另一个页面,各种操作。 C# 往线程里传参数的方法总结 TCP/IP 协议 用C#+Selenium+ChromeDriver 生成我的咕咚跑步路线地图 (转)值得学习百度开源70+项目
- C++primer学习笔记-----6.3返回类型和return 语句
- 【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展
- spring boot 学习笔记(005)返回json对象
- springmvc学习笔记--json--返回json的日期格式问题
- 【学习笔记】以bitmap类型获取imageview的图片
- springmvc学习笔记(13)-springmvc注解开发之集合类型参数绑定
- [javase学习笔记]-6.6 基本数据类型参数与引用数据类型参数的传递过程
- 【Python】学习笔记——-2.1、Python的数据类型与变量
- 【C++11学习笔记】返回类型后置语法
- C#学习笔记之——数据类型,引用参数类型
- ASP.NET MVC5 学习笔记-1 控制器、路由、返回类型、选择器、过滤器
- springmvc学习笔记--json--返回json的日期格式问题
- 反射机制获取方法的参数类型和返回值类型
- restlet2.1 学习笔记(十)使用自定义SecretVerifier验证用户名与密码
- ASP.NET Web API 通过参数控制返回类型(JSON|XML)
- Effective C# 学习笔记(四十)使用Dynamic处理匿名类型参数