欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#實現(xiàn)JsonString與Object互轉(zhuǎn)

 更新時間:2024年12月26日 11:29:22   作者:洱海之月  
這篇文章主要為大家介紹了如何使用.NET庫System.Web.Extensions.dll和Newtonsoft.Json.dll實現(xiàn)Json字符串之間的轉(zhuǎn)換,感興趣的小伙伴可以參考下

主要講述了兩種方法的轉(zhuǎn)換,最后提供了格式化輸出JsonString字符串。

需要引用程序集 System.Web.Extensions.dll、Newtonsoft.Json.dll

System.Web.Extensions.dll可直接在程序集中引用,Newtonsoft.Json.dll需要在NuGet中下載引用。

詳細(xì)代碼:

using System;
using System.IO;
using Newtonsoft.Json;
using System.Collections.Generic;
using System.Web.Script.Serialization;
 
namespace TestAutomationUtility.Models
{
    /// <summary>
    /// <para>需要引用程序集 System.Web.Extensions.dll、Newtonsoft.Json.dll</para>
    /// <para>提供了兩種方式轉(zhuǎn)換</para>
    /// </summary>
    internal class ConvertToJsonString
    {
        /// <summary>
        /// 把json轉(zhuǎn)集合
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="JsonStr"></param>
        /// <returns></returns>
        public List<T> JSONStringToList<T>(string JsonStr)
        {
            JavaScriptSerializer Serializer = new JavaScriptSerializer();
            List<T> objs = Serializer.Deserialize<List<T>>(JsonStr);
            return objs;
        }
 
        /// <summary>
        /// 把json轉(zhuǎn)對象
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="JsonStr"></param>
        /// <returns></returns>
        public T JSONStringToEntity<T>(string JsonStr)
        {
            JavaScriptSerializer Serializer = new JavaScriptSerializer();
            T objs = Serializer.Deserialize<T>(JsonStr);
            return objs;
        }
 
        /// <summary>
        /// 把對象轉(zhuǎn)為json
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="t"></param>
        /// <returns></returns>
        public string ToString<T>(T t)
        {
            JavaScriptSerializer serializer = new JavaScriptSerializer();
            string jsonString = serializer.Serialize(t);
            return jsonString;
        }
 
        /// <summary>
        /// 把list集合轉(zhuǎn)為json
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="t"></param>
        /// <returns></returns>
        public string ToString<T>(List<T> ts)
        {
            JavaScriptSerializer serializer = new JavaScriptSerializer();
            string jsonString = serializer.Serialize(ts);
            return jsonString;
        }
 
        /// <summary>
        /// object轉(zhuǎn)string
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public string ToStringObject(Object obj)
        {
            string json = Newtonsoft.Json.JsonConvert.SerializeObject(obj);
            return json;
        }
 
        /// <summary>
        /// json轉(zhuǎn)Entity
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="jsonString"></param>
        /// <returns></returns>
        public T StringToEntity<T>(string jsonString)
        {
            T person = JsonConvert.DeserializeObject<T>(jsonString);
            return person;
        }
 
        /// <summary>
        /// json轉(zhuǎn)List
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="jsonString"></param>
        /// <returns></returns>
        public IList<T> StringToEntitys<T>(string jsonString)
        {
            IList<T> person = JsonConvert.DeserializeObject<IList<T>>(jsonString);
            return person;
        }
 
        /// <summary>
        /// 格式化輸出json字符串
        /// </summary>
        /// <param name="json"></param>
        /// <returns></returns>
        private string ConvertJsonString(string json)
        {
            JsonSerializer serializer = new JsonSerializer();
            TextReader tr = new StringReader(json);
            JsonTextReader jtr = new JsonTextReader(tr);
            object obj = serializer.Deserialize(jtr);
            if (obj != null)
            {
                StringWriter textWriter = new StringWriter();
                JsonTextWriter jsonWriter = new JsonTextWriter(textWriter)
                {
                    Formatting = Formatting.Indented,
                    Indentation = 4,
                    IndentChar = ' '
                };
                serializer.Serialize(jsonWriter, obj);
                return textWriter.ToString();
            }
            else
            {
                return json;
            }
        }
    }
}

知識拓展

C# JSONObject實現(xiàn)數(shù)據(jù)轉(zhuǎn)換

在C#中,你可以使用Newtonsoft.Json庫(也稱為Json.NET)來處理JSON數(shù)據(jù)。首先,你需要安裝這個庫,可以通過NuGet包管理器來安裝:

Install-Package Newtonsoft.Json

安裝完成后,你可以使用以下代碼示例來實現(xiàn)JSON對象的數(shù)據(jù)轉(zhuǎn)換:

using System;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

namespace JsonToCSharpObject
{
    class Program
    {
        static void Main(string[] args)
        {
            string jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}";

            // 將JSON字符串轉(zhuǎn)換為C#對象
            Person person = JsonConvert.DeserializeObject<Person>(jsonString);

            Console.WriteLine($"Name: {person.Name}");
            Console.WriteLine($"Age: {person.Age}");
            Console.WriteLine($"City: {person.City}");

            // 將C#對象轉(zhuǎn)換回JSON字符串
            string jsonFromObject = JsonConvert.SerializeObject(person);

            Console.WriteLine($"JSON from object: {jsonFromObject}");
        }
    }

    public class Person
    {
        public string Name { get; set; }
        public int Age { get; set; }
        public string City { get; set; }
    }
}

在這個示例中,我們首先定義了一個名為Person的C#類,該類具有與JSON對象中的屬性相對應(yīng)的屬性。然后,我們使用JsonConvert.DeserializeObject方法將JSON字符串轉(zhuǎn)換為Person對象。接下來,我們使用Console.WriteLine輸出轉(zhuǎn)換后的數(shù)據(jù)。

最后,我們使用JsonConvert.SerializeObject方法將Person對象轉(zhuǎn)換回JSON字符串,并將其輸出到控制臺。

到此這篇關(guān)于C#實現(xiàn)JsonString與Object互轉(zhuǎn)的文章就介紹到這了,更多相關(guān)C# JsonString Object互轉(zhuǎn)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#中Dispose和Finalize方法使用介紹

    C#中Dispose和Finalize方法使用介紹

    這篇文章介紹了C#中Dispose和Finalize方法的用法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • C# 委托(跨窗體操作控件)實例流程講解

    C# 委托(跨窗體操作控件)實例流程講解

    今天研究了一下,在C#里面卻是可以不用自定義消息這么復(fù)雜的方法來實現(xiàn)跨窗體調(diào)用控件,C#有更好的辦法就是委托。
    2013-03-03
  • C#中緊耦合Tight Coupling和松耦合Loose Coupling的實現(xiàn)

    C#中緊耦合Tight Coupling和松耦合Loose Coupling的實現(xiàn)

    緊耦合和松耦合是描述模塊或組件之間耦合程度的兩個概念,本文主要介紹了C#中緊耦合Tight Coupling和松耦合Loose Coupling的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • C#的字符串比較

    C#的字符串比較

    這篇文章主要介紹了c# 字符串操作的相關(guān)知識,文中講解的非常詳細(xì),代碼幫助大家更好的學(xué)習(xí),感興趣的朋友可以參考下,希望能給你帶來幫助
    2021-07-07
  • C#反射機制介紹

    C#反射機制介紹

    這篇文章介紹了C#的反射機制,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • 基于Unity實現(xiàn)3D版2048游戲的示例代碼

    基于Unity實現(xiàn)3D版2048游戲的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用Unity實現(xiàn)簡易的3D版2048游戲,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,需要的可以參考一下
    2023-02-02
  • C#實現(xiàn)Socket服務(wù)器及多客戶端連接的方式

    C#實現(xiàn)Socket服務(wù)器及多客戶端連接的方式

    這篇文章介紹了C#實現(xiàn)Socket服務(wù)器及多客戶端連接的方式,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • c#連接sqlserver數(shù)據(jù)庫、插入數(shù)據(jù)、從數(shù)據(jù)庫獲取時間示例

    c#連接sqlserver數(shù)據(jù)庫、插入數(shù)據(jù)、從數(shù)據(jù)庫獲取時間示例

    這篇文章主要介紹了c#連接sqlserver數(shù)據(jù)庫、插入數(shù)據(jù)、從數(shù)據(jù)庫獲取時間示例,需要的朋友可以參考下
    2014-05-05
  • C#中struct與class的區(qū)別詳解

    C#中struct與class的區(qū)別詳解

    本文主要介紹了C#中struct與class的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • C#實現(xiàn)計算器精簡版

    C#實現(xiàn)計算器精簡版

    這篇文章主要為大家詳細(xì)介紹了C#實現(xiàn)計算器精簡版,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01

最新評論