C# 格式化JSON的兩種實現(xiàn)方式
當我們拿到一大段JSON字符串的時候,分析起來簡直頭皮發(fā)麻,相信很大一部分朋友也都會直接去BEJSON等網(wǎng)站去做一個JSON格式化,已方便自己查看數(shù)據(jù)、分析日志等
本篇我們可以使用JSON.NET來實現(xiàn)JSON數(shù)據(jù)的格式化。
實現(xiàn)功能:
- 格式化JSON字符串
開發(fā)環(huán)境:
- 開發(fā)工具: Visual Studio 2013
- .NET Framework版本:4.5
實現(xiàn)代碼:
//第一種方式
private void btnFormat1_Click(object sender, EventArgs e)
{
if (textBox1.Text.Length == 0)
{
return;
}
try
{
JsonSerializer serializer = new JsonSerializer();
TextReader tr = new StringReader(textBox1.Text);
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,//縮進字符數(shù)
IndentChar = ' '//縮進字符
};
serializer.Serialize(jsonWriter, obj);
textBox1.Text = textWriter.ToString();
}
}
catch (Exception ex)
{
MessageBox.Show("錯誤的JSON");
}
}
//第二種方式
private void btnFormat2_Click(object sender, EventArgs e)
{
if (textBox1.Text.Length == 0)
{
return;
}
try
{
//JObject.ToString()方法會內(nèi)部調(diào)用格式化,所以直接使用即可
string json = textBox1.Text.Trim();
//判讀是數(shù)組還是對象
if (json.StartsWith("["))
{
JArray jobj = JArray.Parse(textBox1.Text);
textBox1.Text = jobj.ToString();
}
else if (json.StartsWith("{"))
{
JObject jobj = JObject.Parse(textBox1.Text);
textBox1.Text = jobj.ToString();
}
}
catch (Exception ex)
{
MessageBox.Show("錯誤的JSON");
}
}
//清空
private void btnClear_Click(object sender, EventArgs e)
{
textBox1.Text = "";
}
實現(xiàn)效果:

到此這篇關(guān)于C# 格式化JSON的兩種實現(xiàn)方式的文章就介紹到這了,更多相關(guān)C# 格式化JSON內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Winform控件Picture實現(xiàn)圖片拖拽顯示效果
這篇文章主要為大家詳細介紹了Winform控件Picture實現(xiàn)圖片拖拽顯示效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-09-09
C#/VB.NET 實現(xiàn)在PDF表格中添加條形碼
條碼的應(yīng)用已深入生活和工作的方方面面。在處理條碼時,常需要和各種文檔格式相結(jié)合。本文,以操作PDF文件為例,介紹如何在編輯表格時,向單元格中插入條形碼,需要的可以參考一下2022-06-06
C#難點逐個擊破(6):C#數(shù)據(jù)類型與.net framework數(shù)據(jù)類型
最近開始看Illustrator C#2008,這真是一本好書,我讀計算機書籍這么多了,能讓我稱為好書的沒有多少。2010-02-02
C# 延遲Task.Delay()和Thread.Sleep()的具體使用
Thread.Sleep()是同步延遲,Task.Delay()是異步延遲,本文主要介紹了C# 延遲Task.Delay()和Thread.Sleep()的具體使用,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧2024-01-01

