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数据。

 

 

转载于:https://www.cnblogs.com/nonkicat/archive/2012/09/05/2672112.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值