zoukankan      html  css  js  c++  java
  • C#下对象与JSON串互相转换

      最近在写点东西,要用到对象和JSON互相转换的,总结了下,也可能有错误,也有网上找来的东西,结合在这里记录一下。

      在.NET 2.0下,是需要自己添加Newtonsoft.Json.dll动态链接库的

    using System;
    using System.IO;
    using System.Text;
    using Newtonsoft.Json;
    
    namespace OfflineAcceptControl.UCTools
    {
        public class JsonTools
        {
            // 从一个对象信息生成Json串
            public static string ObjectToJson(object obj)
            {
               return JavaScriptConvert.SerializeObject(obj);
            }
            // 从一个Json串生成对象信息
            public static object JsonToObject(string jsonString, object obj)
            {
               return JavaScriptConvert.DeserializeObject(jsonString, obj.GetType());
            }
        }
    }

      在.NET 3.5以上有自带的动态链接库可以处理json字符串,需要引用System.Runtime.Serialization,System.ServiceModel.Web。 

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Text;
    using System.Runtime.Serialization;
    using System.Runtime.Serialization.Json;
    
    namespace CrjIIOfflineAccept.CrjIITools
    {
        public class JsonTools
        {
            // 从一个对象信息生成Json串
            public static string ObjectToJson(object obj)
            {
               DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
               MemoryStream stream = new MemoryStream();
               serializer.WriteObject(stream, obj);
               byte[] dataBytes = new byte[stream.Length];
               stream.Position = 0;
               stream.Read(dataBytes, 0, (int)stream.Length);
               return Encoding.UTF8.GetString(dataBytes);
            }
            // 从一个Json串生成对象信息
            public static object JsonToObject(string jsonString, object obj)
            {
               DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
               MemoryStream mStream = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
               return serializer.ReadObject(mStream);
            }
        }
    }
  • 相关阅读:
    C#开发: 通信篇-串口调试助手
    C#开发: 准备工作-C# 新建工程
    C#开发: 准备工作-Visual Studio 安装
    ESP8266 SDK开发: 外设篇-串口
    ESP8266 SDK开发: 外设篇-定时器,延时
    ESP8266 SDK开发: 外设篇-GPIO中断检测
    【java编程】加载Resources配置文件的方法
    【java高级编程】jdk自带事件模型编程接口
    【mybatis源码学习】mybtias知识点
    【java编程-Javassist】秒懂Java动态编程(Javassist研究)
  • 原文地址:https://www.cnblogs.com/JianHoly/p/4118745.html
Copyright © 2011-2022 走看看