soluomen的gravatar头像
soluomen 2015-02-09 14:22:32

easyui ajax请求获取SpringMVC @ResponseBody返回的Json数据为什么非得eval才能通过对象获取值?

是这样的,问题是不是比较郁闷,

Spring代码

 @RequestMapping(value="/UserModel/createUser.html")
 @ResponseBody
 public Map<String,Object> addUser(){
    
  Map map = new HashMap();
  map.put("success",true);
  map.put("msg","新增成功");
  
  return map;

easyui代码

success : function(data) {
     //var result = eval('(' + data + ')');
     //alert(result);
     //后台成功返回后处理
     if (data.success) {

      $.messager.alert('系统提示', data.msg);

     } else {
      $.messager.alert('系统提示', '新增失败');

     }

为什么这么获取data.success拿不到true,只有eval才行?谢谢了

所有回答列表(7)
哒猫欧巴的gravatar头像
哒猫欧巴  LV2 2015年2月9日

返回数据的时候 Response类型设置Json  否则默认认为是html/text之类的

柏文JJ的gravatar头像
柏文JJ  LV21 2015年2月9日

返回的是json,可以直接返回Boolean值就可以了

IceRainYWC的gravatar头像
IceRainYWC  LV11 2015年2月10日

你的jquery ajax接收返回数据的类型指定的什么,是不是指定的不是json啊?

liuzhiheng的gravatar头像
liuzhiheng  LV2 2015年2月11日

貌似不会哦

shushanfx的gravatar头像
shushanfx  LV6 2015年2月12日

SpringMVC需要添加该配置:

    <!-- 完成请求和注解POJO的映射 -->
    <bean id="jsonConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="messageConverters">
            <list>
                <ref bean="jsonConverter"/>
            </list>
        </property>
    </bean>

检查你的配置中是否有这个,如果没有则添加。

因为在MappingJacksonHttpMessageConverter中会将response的contentType设置为application/json。

Maxine丶男神的gravatar头像
Maxine丶男神  LV5 2015年2月12日

需要对数据返回形式做处理

a1a1a1a1的gravatar头像
a1a1a1a1  LV5 2018年1月4日

返回指定类型要指定为json,要不然接收的是一个object对象,需要转换

顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友