C# WinForms应用程序中展示JSON内容

在C# WinForms应用程序中展示JSON内容,可以使用多种方法。下面是一些常见的方法:

方法1:使用TextBox控件

如果只是想简单地展示JSON字符串,可以直接将JSON字符串赋值给TextBox控件的Text属性。

string jsonString = "{\"name\":\"John\", \"age\":30}";

textBox1.Text = jsonString;

方法2:使用RichTextBox控件

RichTextBox控件提供了更丰富的文本处理能力,包括文本格式化。如果想要格式化JSON(例如,使其更易读),可以使用RichTextBox。

string jsonString = "{\"name\":\"John\", \"age\":30}";

textBox1.Text = jsonString; // 格式化JSON以增强可读性

textBox1.Text = JsonConvert.SerializeObject(JsonConvert.DeserializeObject(jsonString), Formatting.Indented);

方法3:使用TreeView控件展示JSON结构

如果想以树状结构展示JSON的层次结构,可以使用TreeView控件。这需要一些额外的代码来解析JSON并构建树。

首先,添加一个TreeView到你的窗体,然后使用以下代码:

public void LoadJsonToTreeView(string jsonString, TreeNode parentNode)

{

JObject jsonObject = JObject.Parse(jsonString);

foreach (var property in jsonObject.Properties())

{

TreeNode node = new TreeNode(property.Name);

parentNode.Nodes.Add(node);

if (property.Value.Type == JTokenType.Object)

{

LoadJsonToTreeView(property.Value.ToString(), node);

}

else if (property.Value.Type == JTokenType.Array)

{

LoadJsonArrayToTreeView(property.Value, node);

}

else

{

node.Text += ": " + property.Value.ToString();

}

}

}

public void LoadJsonArrayToTreeView(JArray array, TreeNode parentNode)

{

for (int i = 0; i < array.Count; i++)

{

TreeNode node = new TreeNode("" + i + "");

parentNode.Nodes.Add(node);

if (arrayi.Type == JTokenType.Object)

{

LoadJsonToTreeView(arrayi.ToString(), node);

}

else if (arrayi.Type == JTokenType.Array)

{

LoadJsonArrayToTreeView((JArray)arrayi, node);

}

else

{

node.Text += ": " + arrayi.ToString();

}

}

}

然后,可以这样调用这个方法:

string jsonString = "{\"name\":\"John\", \"age\":30}";

LoadJsonToTreeView(jsonString, treeView1.Nodes[0]); // 确保你的TreeView有一个根节点,或者调整以适应你的结构。 treeView1.ExpandAll(); // 展开所有节点以显示完整结构。

方法4:使用第三方库如JsonFx或Newtonsoft.Json进行更美观的显示(可选)

如果想要一个更美观的JSON展示方式,可以考虑使用第三方库如Newtonsoft.Json来美化JSON字符串,然后再显示。例如:

string jsonString = "{\"name\":\"John\", \"age\":30}";

string prettyJson = JsonConvert.SerializeObject(JsonConvert.DeserializeObject(jsonString), Formatting.Indented); // 使用Newtonsoft.Json库格式化JSON字符串。

textBox1.Text = prettyJson; // 显示格式化后的JSON字符串。

相关推荐
浅尝辄止;1 小时前
设计模式在HIS/LIS医疗系统中的完整实践指南(C#版)
开发语言·设计模式·c#
kimloner11 小时前
开源一个 376KB 的 Windows 桌面小工具:便签 + 截图标注 + OCR + 待办提醒(C# / WinForms)
windows·开源·c#·ocr·winforms
阿松爱学习12 小时前
【Unity开发】Aspose.PDF的使用
unity·pdf·c#
半亩码田12 小时前
C#转Python第4.8篇:正则表达式:Python re 模块 vs C# System.Text.RegularExpressions
python·正则表达式·c#
FPGA小徐12 小时前
【一生一芯 / PA】异常响应机制:RISC-V 中 ecall → mtvec → mret 的完整代
开发语言·数据库·c#
淡海水13 小时前
02-04-原理篇-GC Roots与对象图遍历
算法·unity·c#·图·gc·遍历·roots
胖纸不争18 小时前
嫌桌面 Agent 太重,我“自己”写了一个
ai·c#·net core
当青春邂逅吉米多维奇1 天前
C#图解教程(第5版) 同步方法
开发语言·c#
波力海苔夹心脆6751 天前
C# 机器视觉实战:单相机引导机械手精准贴合,从拍照、偏差计算(平移+旋转)到坐标补偿全解
开发语言·经验分享·数码相机·c#·视觉检测·.net
Behavior1 天前
国内下载使用 Unity 6000 踩坑点总结
c#·unity3d·游戏开发