• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > Json.net 常用使用小结(推荐)

Json.net 常用使用小结(推荐)

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了json.net,json.net下载,c json.net,net.sf.json,net.sf.json jar包等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Json.net 常用使用小结(推荐)

using System;
using System.Linq;
using System.Collections.Generic;

namespace microstore
{
  public interface IPerson
  {
    string FirstName
    {
      get;
      set;
    }
    string LastName
    {
      get;
      set;
    }
    DateTime BirthDate
    {
      get;
      set;
    }
  }
  public class Employee : IPerson
  {
    public string FirstName
    {
      get;
      set;
    }
    public string LastName
    {
      get;
      set;
    }
    public DateTime BirthDate
    {
      get;
      set;
    }

    public string Department
    {
      get;
      set;
    }
    public string JobTitle
    {
      get;
      set;
    }
  }
  public class PersonConverter : Newtonsoft.Json.Converters.CustomCreationConverter<IPerson>
  {
    //重写abstract class CustomCreationConverter<T>的Create方法
    public override IPerson Create(Type objectType)
    {
      return new Employee();
    }
  }

  public partial class testjson : System.Web.UI.Page
  {
    protected void Page_Load(object sender, EventArgs e)
    {
      //if (!IsPostBack)
      //  TestJson();
    }

    #region 序列化
    public string TestJsonSerialize()
    {
      Product product = new Product();
      product.Name = "Apple";
      product.Expiry = DateTime.Now.AddDays(3).ToString("yyyy-MM-dd hh:mm:ss");
      product.Price = 3.99M;
      //product.Sizes = new string[] { "Small", "Medium", "Large" };

      //string json = Newtonsoft.Json.JsonConvert.SerializeObject(product); //没有缩进输出
      string json = Newtonsoft.Json.JsonConvert.SerializeObject(product, Newtonsoft.Json.Formatting.Indented);
      //string json = Newtonsoft.Json.JsonConvert.SerializeObject(
      //  product, 
      //  Newtonsoft.Json.Formatting.Indented,
      //  new Newtonsoft.Json.JsonSerializerSettings { NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore }
      //);
      return string.Format("<p>{0}</p>", json);
    }
    public string TestListJsonSerialize()
    {
      Product product = new Product();
      product.Name = "Apple";
      product.Expiry = DateTime.Now.AddDays(3).ToString("yyyy-MM-dd hh:mm:ss");
      product.Price = 3.99M;
      product.Sizes = new string[] { "Small", "Medium", "Large" };

      List<Product> plist = new List<Product>();
      plist.Add(product);
      plist.Add(product);
      string json = Newtonsoft.Json.JsonConvert.SerializeObject(plist, Newtonsoft.Json.Formatting.Indented);
      return string.Format("<p>{0}</p>", json);
    }
    #endregion

    #region 反序列化
    public string TestJsonDeserialize()
    {
      string strjson = "{\"Name\":\"Apple\",\"Expiry\":\"2014-05-03 10:20:59\",\"Price\":3.99,\"Sizes\":[\"Small\",\"Medium\",\"Large\"]}";
      Product p = Newtonsoft.Json.JsonConvert.DeserializeObject<Product>(strjson);

      string template = @"<p><ul>
                  <li>{0}</li>
                  <li>{1}</li>
                  <li>{2}</li>
                  <li>{3}</li>
                </ul></p>";

      return string.Format(template, p.Name, p.Expiry, p.Price.ToString(), string.Join(",", p.Sizes));
    }
    public string TestListJsonDeserialize()
    {
      string strjson = "{\"Name\":\"Apple\",\"Expiry\":\"2014-05-03 10:20:59\",\"Price\":3.99,\"Sizes\":[\"Small\",\"Medium\",\"Large\"]}";
      List<Product> plist = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Product>>(string.Format("[{0},{1}]", strjson, strjson));

      string template = @"<p><ul>
                  <li>{0}</li>
                  <li>{1}</li>
                  <li>{2}</li>
                  <li>{3}</li>
                </ul></p>";

      System.Text.StringBuilder strb = new System.Text.StringBuilder();
      plist.ForEach(x =>
        strb.AppendLine(
          string.Format(template, x.Name, x.Expiry, x.Price.ToString(), string.Join(",", x.Sizes))
        )
      );
      return strb.ToString();
    }
    #endregion

    #region 自定义反序列化
    public string TestListCustomDeserialize()
    {
      string strJson = "[ { \"FirstName\": \"Maurice\", \"LastName\": \"Moss\", \"BirthDate\": \"1981-03-08T00:00Z\", \"Department\": \"IT\", \"JobTitle\": \"Support\" }, { \"FirstName\": \"Jen\", \"LastName\": \"Barber\", \"BirthDate\": \"1985-12-10T00:00Z\", \"Department\": \"IT\", \"JobTitle\": \"Manager\" } ] ";
      List<IPerson> people = Newtonsoft.Json.JsonConvert.DeserializeObject<List<IPerson>>(strJson, new PersonConverter());
      IPerson person = people[0];

      string template = @"<p><ul>
                  <li>当前List<IPerson>[x]对象类型:{0}</li>
                  <li>FirstName:{1}</li>
                  <li>LastName:{2}</li>
                  <li>BirthDate:{3}</li>
                  <li>Department:{4}</li>
                  <li>JobTitle:{5}</li>
                </ul></p>";

      System.Text.StringBuilder strb = new System.Text.StringBuilder();
      people.ForEach(x =>
        strb.AppendLine(
          string.Format(
            template,
            person.GetType().ToString(),
            x.FirstName,
            x.LastName,
            x.BirthDate.ToString(),
            ((Employee)x).Department,
            ((Employee)x).JobTitle
          )
        )
      );
      return strb.ToString();
    }
    #endregion

    #region 反序列化成Dictionary

    public string TestDeserialize2Dic()
    {
      //string json = @"{""key1"":""zhangsan"",""key2"":""lisi""}";
      //string json = "{\"key1\":\"zhangsan\",\"key2\":\"lisi\"}";
      string json = "{key1:\"zhangsan\",key2:\"lisi\"}";
      Dictionary<string, string> dic = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(json);

      string template = @"<li>key:{0},value:{1}</li>";
      System.Text.StringBuilder strb = new System.Text.StringBuilder();
      strb.Append("Dictionary<string, string>长度" + dic.Count.ToString() + "<ul>");
      dic.AsQueryable().ToList().ForEach(x =>
      {
        strb.AppendLine(string.Format(template, x.Key, x.Value));
      });
      strb.Append("</ul>");
      return strb.ToString();
    }

    #endregion

    #region NullValueHandling特性
    public class Movie
    {
      public string Name { get; set; }
      public string Description { get; set; }
      public string Classification { get; set; }
      public string Studio { get; set; }
      public DateTime? ReleaseDate { get; set; }
      public List<string> ReleaseCountries { get; set; }
    }
    /// <summary>
    /// 完整序列化输出
    /// </summary>
    public string CommonSerialize()
    {
      Movie movie = new Movie();
      movie.Name = "Bad Boys III";
      movie.Description = "It's no Bad Boys";

      string included = Newtonsoft.Json.JsonConvert.SerializeObject(
        movie,
        Newtonsoft.Json.Formatting.Indented, //缩进
        new Newtonsoft.Json.JsonSerializerSettings { }
      );

      return included;
    }
    /// <summary>
    /// 忽略空(Null)对象输出
    /// </summary>
    /// <returns></returns>
    public string IgnoredSerialize()
    {
      Movie movie = new Movie();
      movie.Name = "Bad Boys III";
      movie.Description = "It's no Bad Boys";

      string included = Newtonsoft.Json.JsonConvert.SerializeObject(
        movie,
      



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Json.net 常用使用小结(推荐)
  • .NET中的属性用法分析
  • .NET中的枚举用法浅析
  • .NET中的异常和异常处理用法分析
  • 在.NET中使用Newtonsoft.Json转换,读取,写入的方法介绍

相关文章

  • 2017-05-11ASP.NET在线文本编辑控件的使用(第6节)
  • 2017-05-11ASP.NET MVC中HtmlHelper控件7个大类中各个控件使用详解
  • 2017-05-11解读ASP.NET 5 & MVC6系列教程(7):依赖注入
  • 2017-05-11Visual Studio 2017+OpenCV环境搭建教程
  • 2017-05-11asp.net TripleDES加密、解密算法
  • 2017-05-11Asp.Net Mvc2 增删改查DEMO代码
  • 2017-05-11C#(.NET)数据访问连接、查询、插入等操作的封装类
  • 2017-05-11javascript判断是否有对RadioButtonList选项选择
  • 2018-08-20通过Web Service实现IP地址查询功能的示例
  • 2017-05-11asp.net 结合mysql存储过程进行分页代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 在ASP.NET 2.0中操作数据之六十七:在TableAdapters中使用JOINs
    • asp.net 相关文章实现方法第1/2页
    • 水晶报表图片不显示两种问题分析及解决方法
    • asp.net DataSet转换成josn并输出示例
    • ASP.NET导出Excel打开时提示:与文件扩展名指定文件不一致解决方法
    • .NET读写Excel工具Spire.Xls使用 Excel单元格控制(3)
    • asp.net为网页动态添加description描述信息的方法
    • C#调用动态unlha32.dll解压Lha后缀的打包文件分享
    • vs2010根据字符串内容添加断点的方法介绍
    • ASP.NET实现URL映射的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有