前后如何遍历后台传过来的json

2024-12-27 08:02:34
推荐回答(2个)
回答1:

这个是JSON字符串和数组的混合形式啊,你就正常的取值就好了啊,比如:

var data = {"Table":[{"Id":1,"BuMenName":"管理层","BuMenHit":1},{"Id":2,"BuMenName":"预订部","BuMenHit":2},{"Id":3,"BuMenName":"销售部","BuMenHit":3},{"Id":4,"BuMenName":"财务部","BuMenHit":4},{"Id":8,"BuMenName":"test3","BuMenHit":1000},{"Id":10,"BuMenName":"test23","BuMenHit":123},{"Id":11,"BuMenName":"teststest修改","BuMenHit":23}]};
//如果想要取得Table中的值,因为Table值是数组,那就在用取数组的方法取,如下
var arr = data.Table;
$.each(arr,function(i,json){
    alert(json.Id);   //依次弹出ID为1,2,3,4等
});

类似上面的方法可以去到任意你想要的值,希望对你有所帮助!

回答2:

//UserController.cs
public ActionResult Create()
{
var stream = controllerContext.HttpContext.Request.InputStream;
string json = new StreamReader(stream).ReadToEnd(); //json 字符串在此
}
最好用一些json工具来反序列化成强类型比如JSON.NET,当前上面的写法只讲了原理,其实很搓的。正确的做法是用Binder生成一个强类型的参数:
public ActionResult Create([UserBinder]User user)
{
//已经得到一个强类型的user了
}
然后把上面那些丑陋的代码,扔到binder里去。