专栏首页王磊的博客netframework 4.0内置处理JSON对象

netframework 4.0内置处理JSON对象

前言

必须的是 .netframewoke 4.0的项目才能使用。

内容

1.项目添加System.Runtime.Serialization引用。

2.JsonHelper通用类的代码如下:

using System;
using System.Text;

//--------------------------using
using System.Runtime.Serialization.Json; // 添加引用(.Net 4.0) System.Runtime.Serialization

/// <summary>
/// JSON辅助类 字符<==>对象(注意:字符里属性的大小写与对象的属性大小写必须保持一致)
/// </summary>
public class JsonHelper
{

    #region 对象类型转换为json 字符
    /// <summary>
    /// 对象类型转换为json 字符
    /// </summary>
    /// <typeparam name="T">实体类型</typeparam>
    /// <param name="jsonObject">待转换实体</param>
    /// <param name="encoding">编码格式</param>
    /// <returns>string</returns>
    public static string ObjectToJson<T>(Object jsonObject, Encoding encoding)
    {
        string result = String.Empty;
        DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
        using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
        {
            serializer.WriteObject(ms, jsonObject);
            result = encoding.GetString(ms.ToArray());
        }
        return result;
    }
    #endregion

    #region json字符转换为对象
    /// <summary>
    /// json字符转换为对象
    /// </summary>
    /// <typeparam name="T">实体类型</typeparam>
    /// <param name="json">json字符串</param>
    /// <param name="encoding">编码格式</param>
    /// <returns>T</returns>
    public static T JsonToObject<T>(string json, Encoding encoding)
    {
        T resultObject = Activator.CreateInstance<T>();
        DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
        using (System.IO.MemoryStream ms = new System.IO.MemoryStream(encoding.GetBytes(json)))
        {
            resultObject = (T)serializer.ReadObject(ms);
        }
        return resultObject;
    }
    #endregion

}

结束

需要注意的是,字符里属性的大小写与对象的属性大小写,必须保持一致,才不会出现问题!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 超简单的视频对象提取程序

    Java中文社群_老王
  • 深浅克隆面试题汇总——附详细答案

    可以看出,如果使用等号复制时,对于值类型来说,彼此之间的修改操作是相对独立的,而对于引用类型来说,因为复制的是引用对象的内存地址,所以修改其中一个值,另一个值也...

    Java中文社群_老王
  • JS性能优化

    下面是一些关于客户端JS性能的一些优化的小技巧: 1.关于JS的循环,循环是一种常用的流程控制。JS提供了三种循环:for(;;)、while()、for(in...

    Java中文社群_老王
  • 中国信通院院长刘多:AI虽有泡沫,但我们更要相信投资人和创业者

    镁客网
  • 模仿人类逻辑,首个BERT模型AI通过初二科学考试!研究人员:完成了老板遗愿

    一只名叫亚里士多德的人工智能刚刚通过了美国八年级的科学测试,上周,这条新闻占据了美国多家新闻网站的首版。

    大数据文摘
  • AI军备竞赛2.0:中美无冕之王争霸赛

    2月11日,美国总统特朗普签署了一份政令,概述了美国人工智能倡议。除此之外,该政令还阐述了美国维持其目前在人工智能领域领导地位的必要性。

    IT派
  • 业界 | 第四范式首席科学家杨强教授:人工智能的下一个技术风口与商业风口

    AI科技评论按:本文首发于公众号“第四范式”,已获授权转载。 作为华人界首个国际人工智能协会AAAI Fellow、至今为止唯一的AAAI 华人执委,以及IEE...

    AI科技评论
  • 零基础学习 Python 之继承(一)

    面向对象的程序设计都三个主要的特征:封装,继承,多态,这个也是类里面的重要内容,这三个特征我会从今天开始依次开始写,今天我们先来看第一个:「封装」,这一部分我会...

    Rocky0429
  • 使用yield进行异步流程控制

    现状 目前我们对异步回调的解决方案有这么几种:回调,deferred/promise和事件触发。回调的方式自不必说,需要硬编码调用,而且有可能会出现复杂的嵌套关...

    欲休
  • 首席科学家杨强教授:人工智能的下一个技术风口与商业风口

    镁客网

扫码关注云+社区

领取腾讯云代金券