C# Json传值与解析

Posted Geek

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# Json传值与解析相关的知识,希望对你有一定的参考价值。

最近接触了工作室的项目,觉得一个功能的实现有点不好,心想不能就动手改了下,做了才知道我的js是多么的渣,功能是这样的:

我要实现的功能就是当选择学院时,就放松get请请求到后台,后台返回json信息再来填充班级的信息

C#后台代码:

public string ClassToJson( List<Class> Class)
         {
             var sb = new StringBuilder();
             sb.Append("[");
             if (Class != null)
             {
                 
                 foreach (var item in Class)
                 {
                     sb.Append("{");
                     sb.AppendFormat("\\"Id\\":\\"{0}\\",\\"Name\\":\\"{1}\\"", item.Id, item.Name);
                     sb.Append("}");
                     sb.Append(","); 
                 }
                 if (sb.Length > 1)
                     sb.Remove(sb.Length - 1, 1);  
                  
             }
             sb.Append("]");
         return sb.ToString();
         }

传到界面的就是包括Class的ID和Name,需要注意的是要用\\\'\'不然传回去后就不能得到"ClassID":""之类的信息

 

JSON传值C#代码:

        [HttpGet]
        public ActionResult FindClassesByAcademy(string academyName)
        {
            var Class = (List<Class>) service.GetClassesByAcademy(academyName); 
           return Json(service.ClassToJson(Class),JsonRequestBehavior.AllowGet);
        }

 

 

接下就是View上的代码了:

 $.get("/Admin/Student/FindClassesByAcademy", { "academyName": academyName }, function (data) {
                var Class = JSON.parse(data);
                for (var i = 0; i < Class.length; i++) { 
                   $(\'select#ClassesId\').append("<option value=" + Class[i].Id + ">" + Class[i].Name + "</option>");
               } 
            }); 


注意一定要用JSON.parse来解析Json字符串之前一直用的是stringify老是出错,看了下资料才知道实在是学的太少,parse是JSON字符串解析为原生的js值,而stringify是把js对象序列化为JSON字符串。

革命尚未成功,还得不断努力

 

以上是关于C# Json传值与解析的主要内容,如果未能解决你的问题,请参考以下文章

iOS代理传值与块代码传值

[Javascript] JavaScript赋值时的传值与传址

C语言的传值与传址调用

C# URL传值中有一个#符号传不过去

如何在json中使用Codable解析数据有键但值与枚举不匹配

php中传值与传引用的区别?