zoukankan      html  css  js  c++  java
  • C# Json数据解析

    今天碰到一个问题,需要通过json格式,将前台的数据提交到后台去,然后由后台解析后加以使用。使用Json格式进行数据传递,好处显而易见。我这儿使用Json格式的原因主要是,可以只将数据绑定到一个域上,而不需要绑定多个域进行传递,方便数据的调用。

    上网找了一些方法,里面使用的一些接口都需要再Silverlight中使用,而不能在web环境中使用。不过web框架下还是保留了一种Json数据的接口:JavaScriptSerializer

    其实将json数据解析成后台数据,就是对数据的反序列化

    下面我就做个简单的例子说明一下。

    在前台先将一系列Json数据放到一个数组中:

    $(function(){
    
        var json_str = new Array();
    
        json_str.push(setJdata());//数组中只有一个Json数据
    });
    
     function setJdata() {
               
                var jdata = {
                    "ReleaseStatus": "更新",
                    "ContentId": "CON0000007",
                    "ContentType": "虎の巻",
                    "ContentVolumn":"Vol.7",
                    "ContentTitle":"标题~~~~~",
                    "ReleaseStartTime": "2012/09/04 02:00",
                    "ReleaseEndTime":"-"
                }
                
                return jdata;
     }

     当然,在提交到后台前还先需要将Json数据字符串化,以便后台进行解析。

    string Json_str = "[{\"ReleaseStatus\":\"更新\",\"ContentId\":\"CON0000007\",\"ContentType\":\"虎の巻\",\"ContentVolumn\":\"Vol.7\",\"ContentTitle\":\"标题~~~~~\",\"ReleaseStartTime\":\"2012/09/04 02:00\",\"ReleaseEndTime\":\"-\"}]";

    这时候用MVC3自带的类库进行解析:using System.Web.Script.Serialization;

    JavaScriptSerializer js = new JavaScriptSerializer();
    
    List<ContentModel> list = js.Deserialize<List<ContentModel>>(list.JsonData);

    从这段代码我们可以看到,使用这个类库对Json数据进行解析,可以直接解析为所要的对象(ContentModel)。

    如果Json数据是一个数组,还能解析为所要对象的数组对象(List<ContentModel>

     Json数据分析

    需要注意的是:对象(ContentModel) 必须为可反序列化对象

        [Serializable]
        [DataContract]//得在定义对象类前,先声明这两个属性
        public class ContentModel 
        {
            public string ContentId { get; set; }
    
            public string ContentType { get; set; }
    
            ..........................
    
        }

    以上是对数据的反序列化,那么数据的序列化该怎么做呢??

     很简单 ,看下面一段代码:

    JavaScriptSerializer serializer = new JavaScriptSerializer();
    result.TableData = serializer.Serialize(result.InputContentList);

    只要调用JavaScriptSerializer的Serialize方法就可以对数据进行序列化,最后得到一个string型的json数据。

     

     

  • 相关阅读:
    消除左递归
    DFA最小化
    非确定的自动机NFA确定化为DFA
    正规式到正规文法与自动机
    正规文法与正规式
    词法分析程序的设计与实现
    4.文法和语言总结与梳理
    语法树,短语,直接短语,句柄
    语法
    第一次作业 编译原理概述
  • 原文地址:https://www.cnblogs.com/nonkicat/p/2672112.html
Copyright © 2011-2022 走看看