json数据在前台的解析问题【基于.net mvc2】
View 层:/***************************************************************************************/
function f3() {
var xmlhttp = new XMLHttpRequest(window.XMLHttpRequest);
xmlhttp.open("post","http://localhost:6696/Home/jl");
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
alert(xmlhttp.status);
//...
//如何解析此json数据?
}
else { alert("返回错误"); }
}
}
xmlhttp.send();
}
配置等均无问题,通过路由直接访问M层浏览器可以正常显示json数据:
{"Table":[{"proID":1,"proName":"北京市"},{"proID":2,"proName":"天津市"},{"proID":3,"proName":"上海市"}]} --------后附录了M和C的代码。
/***************************************************************************************/
Model:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.Reflection;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
namespace dis.Models
{
public class Jilian
{
public DataSet getdata()
{
string sqlstr = "Data Source=EYP23PS8WABRKD2;Initial Catalog=discuzz;Integrated Security=True";
SqlConnection con = new SqlConnection(sqlstr);
con.Open();
string cmdstr = "select * from province ";
DataSet ds=new DataSet();
SqlDataAdapter ad=new SqlDataAdapter(cmdstr,con);
ad.Fill(ds);
return ds;
}
public string jsontran()
{
string json = JsonConvert.SerializeObject(getdata());
return json;
}
}
}
Controller:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using dis.Models;
using Newtonsoft.Json;
namespace dis.Controllers
{
[HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
return View("index");
}
public ActionResult VerificationCode()
{
ValidateCode validateCode = new ValidateCode();
byte[] bytes = validateCode.CreateImage();
Session["checkCode"] = validateCode.RandomCode;
return File(bytes, @"image/gif");
}
public ActionResult Login()
{
return View("login");
}
public ActionResult j2()
{ return View("json"); }
public string jl()
{
Jilian j = new Jilian();
string jsondata = j.jsontran();
//return File(jsondata,@"string");
return jsondata;
}
}
} json .net mvc 解析 --------------------编程问答-------------------- 需要用json2转换下格式,,,,我博客里面有json2的资料 http://blog.csdn.net/kllxyu/article/details/9930553 --------------------编程问答-------------------- 如果返回 contentType=application/json 的,直接就是javascript对象,都不用解析。
如果返回是json格式,但是contentType=text/html 的,那么用 eval(data) 可以转换。
另外,lz不要自己写XmlHttpRequest了啊。jQuery几乎是标准了啊,用 jQuery.ajax 嘛。 --------------------编程问答-------------------- 建议LZ使用jQuery实现AJAX,在ajax的参数里设置DataType为json,那么在回调函数里获得的参数就是JSON格式的 --------------------编程问答-------------------- 解析问题已经解决了,可是 前台传递参数给后台,后台怎么接收不到我前台传递的参数,
前台代码:
/****************************************************/部分代码:
function f4() {
.......//省略 下行发送参数...
$.post("http://localhost:6696/Home/j3?"+proIDs, function (data, textStatus) {
var db = data;
var obj = JSON.parse(data);
alert(xmlhttp.status);
alert(proIDs); //参数可以正常弹出
/************************************************************************************/
后台代码:
public string getcity()
{
string proID0 = HttpContext.Current.Request.Params["proIDs"];//调试显示proID0为null
//int proIDs = Convert.ToInt32(proID0)+1;//调试显示值为null
string cmdstr = "select cityName from city where proID='"+proID0+"'";
string json = JsonConvert.SerializeObject(getdata(cmdstr));
return json;
} 求解答。。。。。。
--------------------编程问答-------------------- 后台接收到的是乱码吧 ? --------------------编程问答-------------------- 后台调试的时候显示的是null,也就是没有接收到前台js发来的参数。是后台接收参数的代码有错还是?
补充:.NET技术 , ASP.NET