C#實現(xiàn)JsonString與Object互轉(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#中緊耦合Tight Coupling和松耦合Loose Coupling的實現(xiàn)
緊耦合和松耦合是描述模塊或組件之間耦合程度的兩個概念,本文主要介紹了C#中緊耦合Tight Coupling和松耦合Loose Coupling的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2024-01-01C#實現(xiàn)Socket服務(wù)器及多客戶端連接的方式
這篇文章介紹了C#實現(xiàn)Socket服務(wù)器及多客戶端連接的方式,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-01-01c#連接sqlserver數(shù)據(jù)庫、插入數(shù)據(jù)、從數(shù)據(jù)庫獲取時間示例
這篇文章主要介紹了c#連接sqlserver數(shù)據(jù)庫、插入數(shù)據(jù)、從數(shù)據(jù)庫獲取時間示例,需要的朋友可以參考下2014-05-05