C#中,JSON字符串转换成对象。
在前台提交(post)的数据中。除了强类型的数据外,还有一个额外的json数据提交
在这里我的办法是,在前台把json对象转换成字符串,然后提交。
测试demo
前台:
@using(Html.BeginForm()) { <input type="text" id="json" name="json"/> <input type="submit" value="提交"/> } <script> var json = [{ "Name": "小马宝莉", "ID": 9, "Stock": "abc" }]; json.push({ "Name": "海绵宝宝", "ID": 8, "Stock": "xyz" }) var jsonstr = JSON.stringify(json); $('#json').val(jsonstr); //alert(jsonstr); </script>
后台:
[HttpPost] public ActionResult AjaxPager(string json) { JavaScriptSerializer js = new JavaScriptSerializer(); //JsonClass jsonClass = (JsonClass)js.Deserialize(json, typeof(JsonClass)); ; //var test = js.Deserialize(json, typeof(JsonClass)); // 如果是一维数组的json用这个 // JsonClass jc = js.Deserialize<JsonClass>(json); // 把多维数组转换成List泛型。 List<JsonClass> jc = js.Deserialize<List<JsonClass>>(json); return View(); } } public class JsonClass { public string Name { get; set; } public int ID { get; set; } public string Stock { get; set; } }
这样就可以方便处理了。
记录一下。备用