|
我看51cto讲spingmvc返回json数据是这么配置的 大家项目怎么配置的啊 <!–处理直接返回json格式字符串–> <!– 处理json –> <!– 启动Spring MVC的注解功能,完成请求和注解POJO的映射–> |
|
![]() |
![]() 这是 51CTO视频里的配置 不知道大家项目怎么配置的啊 |
![]() |
Spring这个是要配合jackson使用的~
由于之前用的都是json-lib,所以 |
![]() |
谢谢指点 具体怎么封装啊 有源码吗 |
![]() |
不是告诉你了吗
public void sendJson(HttpServletResponse response, String json)
throws IOException {
response.setContentType("application/json;charset=utf-8");
response.getWriter().write(json);
}
|
![]() |
只要你在后台用流写出json格式的字串,前台是用ajax 发送的请求,
|
![]() |
response.setContentType(“text/html;charset=utf-8”);
设置 这样就可以 了 |
![]() |
貌似 response.setContentType(“application/json;charset=utf-8”); 这样也是可以
|
![]() |
好的 我自己测试下 |
![]() |
2楼的是正解
|
![]() |
我们 项目是 response.setContentType(“application/json;charset=utf-8”);
|
![]() |
你这配置貌似有问题啊 我这报错 |
![]() |
好像不用配置配置文件吧..
加上json的jar包然后 写到浏览器就可以了啊 |
![]() |
哥们 你们怎么用的啊 给个例子啊 |
![]() |
直接把jackson-all-1.6.0.jar导进去然后
//把user以json形式返回
@RequestMapping(value = "/json", method = RequestMethod.POST)
@ResponseBody
public void showbyjson(String name, User user,HttpServletRequest request,HttpServletResponse response)
throws Exception {
//业务处理
String res = Jsonutil.beanToJson(user);
response.setCharacterEncoding("UTF-8");//处理中文编码问题
response.getWriter().write(res);
}
|
![]() |
Jsonutil.beanToJson 你这个方法怎么写的啊 能贴下源码吗 谢谢 |
![]() |
public static String beanToJson(Object obj,Boolean createNew) throws Exception {
try {
ObjectMapper objectMapper = getMapperInstance(createNew);
String json =objectMapper.writeValueAsString(obj);
return json;
} catch (Exception e) {
throw new Exception(e.getMessage());
}
}
|
![]() 30分 |
package com.springmvc.others;
import org.codehaus.jackson.map.ObjectMapper;
import com.srpingmvc.entry.User;
public class Jsonutil {
private static ObjectMapper mapper;
/**
* 获取ObjectMapper实例
* @param createNew 方式:true,新实例;false,存在的mapper实例
* @return
*/
public static synchronized ObjectMapper getMapperInstance(boolean createNew) {
if (createNew) {
return new ObjectMapper();
} else if (mapper == null) {
mapper = new ObjectMapper();
}
return mapper;
}
/**
* 将java对象转换成json字符串
* @param obj 准备转换的对象
* @return json字符串
* @throws Exception
*/
public static String beanToJson(Object obj) throws Exception {
try {
ObjectMapper objectMapper = getMapperInstance(false);
String json =objectMapper.writeValueAsString(obj);
return json;
} catch (Exception e) {
throw new Exception(e.getMessage());
}
}
/**
* 将java对象转换成json字符串
* @param obj 准备转换的对象
* @param createNew ObjectMapper实例方式:true,新实例;false,存在的mapper实例
* @return json字符串
* @throws Exception
*/
public static String beanToJson(Object obj,Boolean createNew) throws Exception {
try {
ObjectMapper objectMapper = getMapperInstance(createNew);
String json =objectMapper.writeValueAsString(obj);
return json;
} catch (Exception e) {
throw new Exception(e.getMessage());
}
}
/**
* 将json字符串转换成java对象
* @param json 准备转换的json字符串
* @param cls 准备转换的类
* @return
* @throws Exception
*/
public static Object jsonToBean(String json, Class<?> cls) throws Exception {
try {
ObjectMapper objectMapper = getMapperInstance(false);
Object vo = objectMapper.readValue(json, cls);
return vo;
} catch (Exception e) {
throw new Exception(e.getMessage());
}
}
/**
* 将json字符串转换成java对象
* @param json 准备转换的json字符串
* @param cls 准备转换的类
* @param createNew ObjectMapper实例方式:true,新实例;false,存在的mapper实例
* @return
* @throws Exception
*/
public static Object jsonToBean(String json, Class<?> cls,Boolean createNew) throws Exception {
try {
ObjectMapper objectMapper = getMapperInstance(createNew);
Object vo = objectMapper.readValue(json, cls);
return vo;
} catch (Exception e) {
throw new Exception(e.getMessage());
}
}
public static void main(String[] args) throws Exception {
User u = new User();
u.setName("ds");
u.setId(1);
String re=beanToJson(u);
System.out.println(re);
}
}
|
![]() |
求给分
|
![]() |
谢谢 一定 给分啊 |
![]() |
那是jackson自己的方法,你可以下载源代码看看 |
![]() |
a)引入Jar,java对象和json对象可以通过注解相互转化
jackson-core-asl-1.9.13.jar jackson-mapper-asl-1.9.13.jar b)springmvc-servlet.xml文件配置注解支持 <mvc:annotation-driven/> c)使用注解 @RequestBody 将提交中的json数据自动封装到java对象中 注意@RequestBody接收的是一个Json对象的字符串,而不是一个Json对象。 @ResponseBody 将返回的java对象自动转换为json串
@Controller public class AjaxController { @Resource PersonService personService;
@RequestMapping(“/ajaxresponse.action”) @ResponseBody public List<Person> ajaxresponse(HttpServletRequest request){ List<Person> pList = personService.listAll();
return pList; }
@RequestMapping(“/ajaxrequest.action”) public void ajaxrequest(@RequestBody List<Person> persons) { System.out.println(persons.size()); } } |
![]() |
public static String toJson(Object o) {
Gson gson = new GsonBuilder().registerTypeAdapter( Date.class, new DateSerializer()).create(); return gson.toJson(o); } 直接这样就可以了 |


