软件编程
位置:首页>> 软件编程>> C#编程>> C# 格式化JSON的两种实现方式

C# 格式化JSON的两种实现方式

作者:Csharp  发布时间:2023-03-14 05:31:16 

标签:C#,格式化,JSON

当我们拿到一大段JSON字符串的时候,分析起来简直头皮发麻,相信很大一部分朋友也都会直接去BEJSON等网站去做一个JSON格式化,已方便自己查看数据、分析日志等

本篇我们可以使用JSON.NET来实现JSON数据的格式化。

实现功能:

  • 格式化JSON字符串

开发环境:

  • 开发工具: Visual Studio 2013

  • .NET Framework版本:4.5

实现代码:

//第一种方式
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,//缩进字符数
                 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()方法会内部调用格式化,所以直接使用即可
         string json = textBox1.Text.Trim();
         //判读是数组还是对象
         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 = "";
 }

实现效果:

C# 格式化JSON的两种实现方式

来源:https://blog.csdn.net/qq_27410185/article/details/123040341

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com