一个aspx页面的json数据,另一个html页该怎样用js就接收及遍历出来?我想要详细的代码
嗯 谢谢大家 ,结贴了。
后台的代码就简单点了
var SupplierCode = "Test"; string SupplierName = "Test"; var jsonData = new { SupplierCode, SupplierName }; var serlizer = new JavaScriptSerializer(); return serlizer.Serialize(jsonData); //以上代码返回josn格式为{"SupplierCode ":"Test","SupplierName ":"Test"} //前台代码 如下 $.ajax({ url: url, type: "GET", data: { }, dataType: "json", success: function (data) { //此处可以操作返回的json数据 alert(data.SupplierCode) } } });
这个难度比较大吧,你要解析另一个不是你自己网站的网页源码。
我想到一个方法可能会好点,你在自己的网页中嵌入一个iframe,把目标网页载入,通过脚本能否引用到json数据呢?
不是,两个页面都是我自己做的,aspx页面可以显示json格式数据,我想在另一个html页上获取到这个数据。
@无良小丑: 这不是常规做法呀,当然拿到肯定是可以的,但要花费多少工作量就不知道了,具体要看你的代码怎么写的,主要还是分析源码。
我突然觉得这个需求好奇怪呀,你的页面是针对不同用户显示不同数据的话,那用户如果没用打开aspx页面,你怎么取数据呢?
如果aspx页面针对所有用户返回的json都一致,你写个webservice,两个页面调用一个webservice不就行了吗,一致性就比较好控制了。
@沧海一杰:495941414这是我扣扣 加我可以么 ,我给你发图片
@沧海一杰: 这是我aspx页面可返回的数据
html页代码我就不发了,因为我写的不好用。
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.UI; 6 using System.Web.UI.WebControls; 7 using System.Data; 8 using System.Data.SqlClient; 9 using System.Text; 10 11 namespace Conference 12 { 13 public partial class JsonMeeting : System.Web.UI.Page 14 { 15 protected void Page_Load(object sender, EventArgs e) 16 { 17 if (!IsPostBack) 18 { 19 Conference.conn.Open(); 20 CreateJsonParameters(); 21 }} 22 public void CreateJsonParameters() 23 { 24 Request.QueryString["jsoncallback"]; 25 26 DataTable dt = Conference.getDataSet("select * from Meeting"); 27 28 29 Conference.conn.Close(); 30 StringBuilder JsonString = new StringBuilder(); 31 32 if (dt != null && dt.Rows.Count > 0) 33 { 34 35 JsonString.Append("{ "); 36 JsonString.Append("\"Fuck\":[ "); 37 for (int i = 0; i < dt.Rows.Count; i++) 38 { 39 JsonString.Append("{ "); 40 for (int j = 0; j < dt.Columns.Count; j++) 41 { 42 if (j < dt.Columns.Count - 1) 43 { 44 JsonString.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":" + "\"" + dt.Rows[i][j].ToString() + "\","); 45 } 46 else if (j == dt.Columns.Count - 1) 47 { 48 JsonString.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":" + "\"" + dt.Rows[i][j].ToString() + "\""); 49 } 50 } 51 if (i == dt.Rows.Count - 1) 52 { 53 JsonString.Append("} "); 54 } 55 else 56 { 57 JsonString.Append("}, "); 58 } 59 } 60 61 JsonString.Append("]}"); 62 string result = JsonString.ToString(); 63 64 Response.Write(result); 65 Response.ContentType = "application/json"; 66 Response.Charset = "UTF-8"; 67 Response.End(); 68 } 69 70 } 71 72 } 73 }
你现在是无法接收到,还是不会遍历呢? 遍历的话是语法层面的问题,我无法帮到你,你自己生成的,自己慢慢解析吧。
你上面有一段JS,应该是html页面中的吧,用GetJSON后面的地址换成aspx页面的地址就应该可以获取到json对象了呀?
//后台一般处理程序 public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; List<UserInfo> list = new List<UserInfo>(); for (int i = 1; i <= 10; i++) { UserInfo user = new UserInfo(); //UserInfo类型有两个属性分别为Name和Age user.Name = "ty" + 1; user.Age = 20 + i; list.Add(user); } JavaScriptSerializer jSerializer = new JavaScriptSerializer(); //用.net自带的序列化json context.Response.Write(jSerializer.Serialize(list)); context.Response.End(); }
<table id="tbContent"> <tr><th>姓名</th><th>年龄</th></tr> </table>
//前台拿到json并循环遍历 $.getJSON("Handler2.ashx", "", function (data) { if (data.length > 0) { var strTds = ""; for (var i = 0; i < data.length; i++) { var user = data[i]; var strs = "<tr><td>" + user.Name + "</td>"; strs += "<td>" + user.Age + "</td></tr>"; strTds += strs; } $("#tbContent").append(strTds); //append到表格中 } });
代码一不小心,搞乱了!
你现在是无法接收到,还是不会遍历呢? 遍历的话是语法层面的问题,我无法帮到你,你自己生成的,自己慢慢解析吧。
@沧海一杰:
你上面有一段JS,应该是html页面中的吧,用GetJSON后面的地址换成aspx页面的地址就应该可以获取到json对象了呀?
用JSONP应该可以!