最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

詳細代碼:

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>提供了兩種方式轉換</para>
    /// </summary>
    internal class ConvertToJsonString
    {
        /// <summary>
        /// 把json轉集合
        /// </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轉對象
        /// </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>
        /// 把對象轉為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集合轉為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轉string
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public string ToStringObject(Object obj)
        {
            string json = Newtonsoft.Json.JsonConvert.SerializeObject(obj);
            return json;
        }
 
        /// <summary>
        /// json轉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轉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ù)轉換

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

Install-Package Newtonsoft.Json

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

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字符串轉換為C#對象
            Person person = JsonConvert.DeserializeObject<Person>(jsonString);

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

            // 將C#對象轉換回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對象中的屬性相對應的屬性。然后,我們使用JsonConvert.DeserializeObject方法將JSON字符串轉換為Person對象。接下來,我們使用Console.WriteLine輸出轉換后的數(shù)據(jù)。

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

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

相關文章

  • C# Process調用外部程序的實現(xiàn)

    C# Process調用外部程序的實現(xiàn)

    這篇文章主要介紹了C# Process調用外部程序的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • c# 備忘錄模式

    c# 備忘錄模式

    備忘錄模式:在不破壞封裝的前提下,捕獲一個對象的內部狀態(tài),并在這個對象之外的地方保存這個狀態(tài),這樣以后就可將該對象恢復到原來保存的狀態(tài)了
    2012-10-10
  • 使用C#代碼重新排列PDF頁面的操作代碼

    使用C#代碼重新排列PDF頁面的操作代碼

    對于頁面順序混亂的 PDF 文檔,重新排列頁面可以避免讀者產(chǎn)生困惑,同時也能讓文檔結構更加清晰有序,本文將演示如何使用 Spire.PDF for .NET 以編程方式重新排列現(xiàn)有 PDF 文檔中的頁面,需要的朋友可以參考下
    2025-12-12
  • C#實現(xiàn)高性能檢索文檔的5大核心技巧總結

    C#實現(xiàn)高性能檢索文檔的5大核心技巧總結

    C#如何突破10GB文檔的檢索瓶頸,是優(yōu)化算法,還是升級硬件,內存與磁盤如何平衡,下面小編就為大家簡單分享5個C#高性能檢索文檔的核心技巧吧
    2025-10-10
  • C#鉤子Hook監(jiān)聽鍵盤鼠標事件實現(xiàn)窗體自動關閉

    C#鉤子Hook監(jiān)聽鍵盤鼠標事件實現(xiàn)窗體自動關閉

    鉤子(Hook)的作用主要體現(xiàn)在監(jiān)視和攔截系統(tǒng)或進程中的各種事件消息,并進行自定義處理,本文主要介紹了C#如何利用鉤子Hook監(jiān)聽鍵盤鼠標事件實現(xiàn)窗體自動關閉功能,感興趣的可以了解下
    2025-01-01
  • C#調用釘釘API發(fā)送通知的實現(xiàn)示例

    C#調用釘釘API發(fā)送通知的實現(xiàn)示例

    本文介紹了使用C#調用釘釘API實現(xiàn)企業(yè)通知推送的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-11-11
  • 如何利用C#打印九九乘法表

    如何利用C#打印九九乘法表

    這篇文章主要給大家介紹了關于如何利用C#打印九九乘法表的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • C#實現(xiàn)實體類和XML相互轉換

    C#實現(xiàn)實體類和XML相互轉換

    這篇文章主要為大家詳細介紹了C#實現(xiàn)實體類和XML相互轉換的資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • c#中合并excel表格的方法示例

    c#中合并excel表格的方法示例

    本篇文章主要介紹了c#中合并excel表格的方法,就是將excel表格結構一樣的合并到一起,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2016-10-10
  • C#自定義控件VS用戶控件

    C#自定義控件VS用戶控件

    這篇文章主要為大家詳細介紹了C#中自定義控件VS用戶控件的區(qū)別,介紹了開發(fā)自己的控件的幾種方法、自定義控件與用戶控件區(qū)別,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12

最新評論

敖汉旗| 泰安市| 巴里| 错那县| 平阳县| 门头沟区| 齐河县| 互助| 许昌县| 安西县| 信丰县| 察哈| 格尔木市| 阿克苏市| 汉阴县| 林口县| 湖口县| 西青区| 惠东县| 车险| 扬州市| 西畴县| 通渭县| 曲沃县| 富裕县| 池州市| 宝山区| 绥芬河市| 岳阳市| 治县。| 维西| 金沙县| 咸宁市| 夏邑县| 汨罗市| 南陵县| 通州市| 时尚| 台南市| 洪湖市| 徐州市|