C#實現(xiàn)JsonString與Object互轉
主要講述了兩種方法的轉換,最后提供了格式化輸出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#鉤子Hook監(jiān)聽鍵盤鼠標事件實現(xiàn)窗體自動關閉
鉤子(Hook)的作用主要體現(xiàn)在監(jiān)視和攔截系統(tǒng)或進程中的各種事件消息,并進行自定義處理,本文主要介紹了C#如何利用鉤子Hook監(jiān)聽鍵盤鼠標事件實現(xiàn)窗體自動關閉功能,感興趣的可以了解下2025-01-01

