2 yzk520 yzk520 于 2016.03.15 13:41 提问

web项目前端读取json数据不正常 ? 10C

图片说明后台代码

@Override
    public String execute() throws Exception {
        Object obj=this.session.get(StaticString.ADMIN_INFO);
        Map<String, Object> map=new HashMap<String, Object>();
        if(obj!=null){
            AdminBean newAdmin =new AdminBean(this.name, this.password);
            ManageDao dao=AppDaoFactory.getInstance().getManageDao("manageDao");
            try{
                dao.updateAdmin(newAdmin);
                this.session.clear();
                map.put("message", "修改成功");
                map.put("success", true);
            }catch(AppException e){
                map.put("success", false);
                map.put("message", e.getMessage());
            }
            JSONObject json=JSONObject.fromObject(map);
            this.data=json.toString();
            return SUCCESS;
        }
        return "login";
    }

struts2
配置代码

 <action name="updateAdmin" class="com.iwm2.admin.actions.UpdateAdminAction">
            <result name="success" type="json">
                <param name="root">data</param>
            </result>
            <result name="login" type="redirectAction">login</result>
        </action

前端js代码

 $("#cpwa").click(function(){
        $("#ff").form('submit',{
            url:"updateAdmin",
            onSubmit:function(){
                return $(this).form('validate');
            },
            success:function(data){
                data=eval("(" + data + ")");
                if(data.success){
                    console.log(data);
                    console.log(data.success);
                    //alert(data.message);
                    location.href="login";
                }else{
                    console.log(data);
                    console.log(data.success);
                    alert(data.message);
                }
            }
        });
    });

结果却是无法读取json数据咋回事
console.log(data);能够打印出{"message":"修改成功","success":true}
console.log(data.message)却是undefined

6个回答

daidaineteasy
daidaineteasy   Ds   Rxr 2016.03.15 13:58

没有设置一下返回数据类型吧,dataType: "json",

u011489205
u011489205   2016.03.15 18:58

var json = JSON.parse(string) ;//讲一个字符串转化为json对象。
var jsonString = JSON.stringify(json)//讲一个js对象转化为json字符串。

shsongtao
shsongtao   2016.03.15 14:49

你的data是json啊,所以你把json转成js的object 然后再取值就ok了

showbo
showbo   Ds   Rxr 2016.03.15 14:52

eval转过data应该是json对象,你是执行到else语句打印出来的?

u013772876
u013772876   2016.03.15 15:49

设置ajax返回数据类型属性 dataType: "json",就可以了

m_qiaozi
m_qiaozi   2016.03.15 18:38

如果你将返回类型设置为,在action中不需要使用JSONObject.fromObject方法,直接返回MAP对象即可,struts2会自动将对象转化为json字符串。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!