zoukankan      html  css  js  c++  java
  • .NET的JSNO 序列化跟反序列化

       由于本人最近在写webservice,之前一直都同通过AJAX,在服务端处理业务,但是最近需要写一些接口给其他人用,需要使用jsno的序列化与反序列化,什么是jsno就不多说,jsno的好处也不多说,直接贴代码。

    1.需要引用System.Web.Script.Serialization;

    1 using System;
    2 using System.Collections.Generic;
    3 using System.Linq;
    4 using System.Web;
    5 
    6 using System.Web.Script.Serialization;
    7 using System.Data; //后面用到DataTable

    2.先说把对象转换成JSNO字符串。首先对象转JSON

     1 /// <summary> 
     2     /// 对象转JSON 
     3     /// </summary> 
     4     /// <param name="obj">对象</param> 
     5     /// <returns>JSON格式的字符串</returns> 
     6     public static string ObjectToJSON(object obj)
     7     {
     8         JavaScriptSerializer jss =new JavaScriptSerializer();
     9         try
    10         {
    11             return jss.Serialize(obj);
    12         }
    13         catch(Exception ex)
    14         {
    15 
    16             throw new Exception("JSONHelper.ObjectToJSON(): "+ ex.Message);
    17         }
    18     }

    3.DataTable dt数据集转换成JSNO字符串,需要将数据集DataTable转换成值对集合,才能通过对象转换成JSNO字符串

     1     /// 数据表转键值对集合 
     2     public static List<Dictionary<string,object>> DataTableToList(DataTable dt)
     3     {
     4         List<Dictionary<string,object>> list=new List<Dictionary<string,object>>();
     5 
     6         foreach(DataRow dr in dt.Rows)
     7         {
     8             Dictionary<string,object> dic =new Dictionary<string,object>();
     9             foreach(DataColumn dc in dt.Columns)
    10             {
    11                 dic.Add(dc.ColumnName, dr[dc.ColumnName]);
    12             }
    13             list.Add(dic);
    14         }
    15         return list;
    16     }
    17 
    18 
    19     // 数据表转JSON 
    20     public static string DataTableToJSON(DataTable dt)
    21     {
    22         return ObjectToJSON(DataTableToList(dt));
    23     }

    4.JSON文本转对象,泛型方法

     1  public static T JSONToObject<T>(string jsonText)
     2     {
     3         JavaScriptSerializer jss =new JavaScriptSerializer();
     4         try
     5         {
     6             return jss.Deserialize<T>(jsonText);
     7         }
     8         catch(Exception ex)
     9         {
    10             throw new Exception("JSONHelper.JSONToObject(): "+ ex.Message);
    11         }
    12     }

    5.将JSON文本转换为数据表数据 

    1 public static Dictionary<string,List<Dictionary<string,object>>> TablesDataFromJSON(string jsonText)
    2     {
    3         return JSONToObject <Dictionary<string,List<Dictionary<string,object>>>>(jsonText);
    4     }
  • 相关阅读:
    JavaOne Online Hands-on Labs
    Using DTrace to Profile and Debug A C++ Program
    怎样挑选电线?家装用线越大越好吗?
    ORACLE DTRACE DOC
    内核书
    SQL Server vNext CTP 1.2
    用VS Code打造最佳Markdown编辑器
    opendtrace 开源汇总
    DTrace C++ Mysteries Solved 转
    MYSQL-RJWEB 博客学习
  • 原文地址:https://www.cnblogs.com/fgr-lmy/p/4466068.html
Copyright © 2011-2022 走看看