首页 新闻 赞助 找找看

这个返回json数据要怎么做 请教大虾啊

0
悬赏园豆:10 [待解决问题]

dwz有一个 dwz.ajax.js会根据状态码验证时否从新登陆 ,,,

我要做的是 直接返回一个 json数据给前台  

 

说简单点就是 前台js已经做好了 验证功能 

我要返回以下的json数据::这个怎么做啊  晕啊

{
"statusCode":"301",
"message":"\u4f1a\u8bdd\u8d85\u65f6\uff0c\u8bf7\u91cd\u65b0\u767b\u5f55\u3002",
"navTabId":"",
"callbackType":"",
"forwardUrl":""
}

 

询问java1的主页 询问java1 | 初学一级 | 园豆:72
提问于:2013-12-19 16:57
< >
分享
所有回答(4)
0
 
 var selizer = new JavaScriptSerializer();
 var message = "Error Message";
 var jsonData = new { status, message };
 return selizer.Serialize(jsonData);
            $.ajax({
                    url: "www.baidu.com",
                    type: "GET",
                    data: {
                        "clientID": clientID,
                        "nd": new Date().getTime()
                    },
                    dataType: "json",
                    success: function (data) {
                        alert(data.message)
                    }

                });

在前端用ajax调用后端验证的方法,并返回验证结果 

Zery | 园豆:6151 (大侠五级) | 2013-12-19 17:12

var selizer = new JavaScriptSerializer(); 

这个对象干嘛用的啊???

selizer.Serialize(jsonData); ???这个方法的作用是什么

$.ajax()这个ajax请求 跟前边你写的代码没有关系了

支持(0) 反对(0) 询问java1 | 园豆:72 (初学一级) | 2013-12-19 17:18

@询问java1: 

上一段是后台转json的方法 只是没声明方法名  JavaScriptSerializer这个对象用于序列化成json对象

下一段是用ajax调用后台方法的也就是上一段的方法

支持(0) 反对(0) Zery | 园豆:6151 (大侠五级) | 2013-12-19 17:20

@Zery: 哦,,这个我明白了 我的意思是 我怎么把$.ajax()封装起来 再什么时候发出请求, 我这边的是这样的  session 会话超时 判断是否让用户从新登陆,,,,

支持(0) 反对(0) 询问java1 | 园豆:72 (初学一级) | 2013-12-19 17:23

@询问java1: session超时应该在服务端判断,然后直接跳转到login页面,为什么到前端去判断了呢?

如果用js 处理那禁用js后就不会有超时了

支持(0) 反对(0) Zery | 园豆:6151 (大侠五级) | 2013-12-19 17:26

@Zery: 我们这个不是用的DWZ框架么,,,他有一个 会话超时按钮  ,,您可以看一下 就是请求一个html 然后html内容就是 json{  } 形式 然后就弹出了 会话超时 请从新登陆 提示框

支持(0) 反对(0) 询问java1 | 园豆:72 (初学一级) | 2013-12-19 17:28

@询问java1: 那后台的方法就不用说了比较简单,至于什么时候触发验证超时的事件,这个看你的需求来了,

而这个异步请求的方法就是在触发验证方法时调用,DWZ框架没用过,所以只能跟你说思路了,抱歉 。

支持(0) 反对(0) Zery | 园豆:6151 (大侠五级) | 2013-12-19 17:40
0

学习一下 Json.NET 吧,JSON 传递数据很常用的。

using Newtonsoft.Json;

public class DWZData{
    public string statusCode{get;set;}
    public string message{get;set;}
    public string navTabId{get;set;}
    public string callbackType{get;set;}
    public string forwardUrl{get;set;}
}

public class DWZHandler{
    public string SendBack(){
        DWZData data = new DWZData();
        data.statusCode = "301";
        // ...
        
        string json = JsonConvert.SerializeObject(data);
        return json;
    }
}
飞扬的尘埃 | 园豆:1318 (小虾三级) | 2013-12-19 17:31

什么叫JSON .net 不太明白 大哥

支持(0) 反对(0) 询问java1 | 园豆:72 (初学一级) | 2013-12-19 17:39

@询问java1: Json.NET 是一个 C# 处理 Json 数据的工具。你的项目中引用了Json.NET的组件之后,会有一个命名空间Newtonsoft.Json,其中有很多操作Json的方法。

最常用的就是将一个C#类的实例转为Json字符串。比如你上面提到的消息格式,我定义为一个类,然后创建一个该类的实例,赋值,最后序列化为Json字符串,返回给Ajax调用的接口。

支持(0) 反对(0) 飞扬的尘埃 | 园豆:1318 (小虾三级) | 2013-12-19 17:43

@飞扬的尘埃: 您好 您有QQ么 可以相互交流交流

支持(0) 反对(0) 询问java1 | 园豆:72 (初学一级) | 2013-12-19 18:48
0

直接下载一个JsonHelper帮助类,引用到后台cs文件中,创建一个类的对象。里面声明以上属性,public string statusCode{get;set;} public string message{get;set;} public string navTabId{get;set;} public string callbackType{get;set;} public string forwardUrl{get;set;}

 

在类的前面添加序列化标识为输出Json即可,前端js直接调用

雾静 | 园豆:561 (小虾三级) | 2013-12-19 22:48
0

建议用1楼的,那种用法在.net3.5加入的,在处理 序列化数据不大的情况,还是很好的,mvc中的json() 内部就是用它实现的,当然可以用json.net 具体看你在项目怎么使用了

秋壶冰月 | 园豆:5903 (大侠五级) | 2013-12-20 08:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册