zoukankan      html  css  js  c++  java
  • JSON 数据转换

     

    • JSON概述
         JSON(Java Script Object Notation)JS对象符号,通常JSON和XML是二选一的,JSON的数据格式很类似于JavaScript的对象
    {
      "pets": {
        "name": "Jeffrey",
        "species": "Giraffe"
      }
    }
    • .NET原生方式进行数据转换
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
     
    using System.Runtime.Serialization;
    using System.ServiceModel;
    using System.ServiceModel.Web;
     
        public class JsonHelper
        {
            public static string ToJson<T>(T obj)
            {
                string result = String .Empty;
                try
                {
                    System.Runtime.Serialization.Json. DataContractJsonSerializer serializer =
                    new System.Runtime.Serialization.Json.DataContractJsonSerializer( typeof(T));
                    using (System.IO.MemoryStream ms = new System.IO. MemoryStream())
                    {
                        serializer.WriteObject(ms, obj);
                        result = System.Text. Encoding.UTF8.GetString(ms.ToArray());
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                return result;
            }
     
            public static string ToJsonFromByList<T>( List<T> vals)
            {
                System.Text. StringBuilder st = new System.Text.StringBuilder();
                try
                {
                    System.Runtime.Serialization.Json. DataContractJsonSerializer s = new System.Runtime.Serialization.Json.DataContractJsonSerializer (typeof(T));
     
                    foreach (T city in vals)
                    {
                        using (System.IO.MemoryStream ms = new System.IO. MemoryStream())
                        {
                            s.WriteObject(ms, city);
                            st.Append(System.Text. Encoding.UTF8.GetString(ms.ToArray()));
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
     
                return st.ToString();
            }
     
            public static T ParseFormByJson<T>(string jsonStr)
            {
                T obj = Activator.CreateInstance<T>();
                using (System.IO.MemoryStream ms =
                new System.IO.MemoryStream (System.Text.Encoding.UTF8.GetBytes(jsonStr)))
                {
                    System.Runtime.Serialization.Json. DataContractJsonSerializer serializer =
                    new System.Runtime.Serialization.Json.DataContractJsonSerializer( typeof(T));
                    return (T)serializer.ReadObject(ms);
                }
            }
        }  
    • Newtonsoft.json组件方式进行数据转换
         采用Newtonsoft.json组件方式实现json数据的转换需要引用Newtonsoft.json组件。
      • 下载地址
      • 简易方式
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
     
    using Newtonsoft.Json;
     
     
        public class JsonHelper
        {
            public static string ToJson<T>(T value)
            {
                return JsonConvert .SerializeObject(value,Formatting.None);
            }
     
            public static T FromJson<T>(string jsonText)
            {
                return JsonConvert .DeserializeObject<T>(jsonText); ;
            }
        }
      • 复杂可配置方式
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
     
    using Newtonsoft.Json;
    using System.IO;
     
       public static string ToJson<T>(T value)
            {
                Newtonsoft.Json. JsonSerializer json = new Newtonsoft.Json.JsonSerializer();
                json.NullValueHandling = NullValueHandling.Ignore;
                json.ObjectCreationHandling = Newtonsoft.Json. ObjectCreationHandling.Replace;
                json.MissingMemberHandling = Newtonsoft.Json. MissingMemberHandling.Ignore;
                json.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
                StringWriter sw = new StringWriter();
                Newtonsoft.Json. JsonTextWriter writer = new JsonTextWriter(sw);
                writer.Formatting = Formatting.None;
                writer.QuoteChar = '"';
                json.Serialize(writer, value);
                string output = sw.ToString();
                writer.Close();
                sw.Close();
                return output;
            }
          
            public static T FromJson<T>(string jsonText)
            {
                Newtonsoft.Json. JsonSerializer json = new Newtonsoft.Json.JsonSerializer();
                json.NullValueHandling = Newtonsoft.Json. NullValueHandling.Ignore;
                json.ObjectCreationHandling = Newtonsoft.Json. ObjectCreationHandling.Replace;
                json.MissingMemberHandling = Newtonsoft.Json. MissingMemberHandling.Ignore;
                json.ReferenceLoopHandling = Newtonsoft.Json. ReferenceLoopHandling.Ignore;
                StringReader sr = new StringReader(jsonText);
                Newtonsoft.Json. JsonTextReader reader = new JsonTextReader(sr);
                T result = (T)json.Deserialize(reader, typeof(T));
                reader.Close();
                return result;
            }
  • 相关阅读:
    [DeeplearningAI笔记]序列模型2.6Word2Vec/Skip-grams/hierarchical softmax classifier 分级softmax 分类器
    [DeeplearningAI笔记]序列模型2.3-2.5余弦相似度/嵌入矩阵/学习词嵌入
    [DeeplearningAI笔记]序列模型2.1-2.2词嵌入word embedding
    [DeeplearningAI笔记]序列模型1.10-1.12LSTM/BRNN/DeepRNN
    [DeeplearningAI笔记]序列模型1.7-1.9RNN对新序列采样/GRU门控循环神经网络
    [DeeplearningAI笔记]序列模型1.5-1.6不同类型的循环神经网络/语言模型与序列生成
    [DeeplearningAI笔记]序列模型1.3-1.4循环神经网络原理与反向传播公式
    [DeeplearningAI笔记]序列模型1.1-1.2序列模型及其数学符号定义
    The request lifetime scope cannot be created because the HttpContext is not available
    【转载】C#基础系列——小话泛型
  • 原文地址:https://www.cnblogs.com/liusuqi/p/3181696.html
Copyright © 2011-2022 走看看