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

 更新时间:2022年05月12日 09:51:50   作者:Csharp 小记  
本文主要介绍了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的两种实现方式的文章就介绍到这了,更多相关C# 格式化JSON内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • c# base64转字符串实例

    c# base64转字符串实例

    这篇文章主要介绍了c# base64转字符串实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • 深入理解C#中常见的委托

    深入理解C#中常见的委托

    这篇文章主要介绍了C# 委托(Delegate)的相关资料,文中讲解非常详细,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下,希望能够帮助到你
    2021-07-07
  • C#定时关闭窗体实例

    C#定时关闭窗体实例

    这篇文章主要介绍了C#定时关闭窗体实例,在Windows桌面应用程序开发中具有一定的实用价值,需要的朋友可以参考下
    2014-10-10
  • C# 中对象序列化XML的方法

    C# 中对象序列化XML的方法

    这篇文章主要介绍了C# 中对象序列化XML的方法,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-03-03
  • 解析C#中如何把控件的边框角画为圆弧

    解析C#中如何把控件的边框角画为圆弧

    以下是对C#中把控件的边框角画为圆弧的实现代码进行了介绍,需要的朋友可以参考下
    2013-07-07
  • C#的锯齿数组以及C++实现代码

    C#的锯齿数组以及C++实现代码

    锯齿数组首先是二维数组,第一维的维数是确定的。之所以在C#中能够出现灵活的锯齿数组,是因为,C#的数组是引用类型(本质上存放的是指针)。根据这个引用类型(指针)的概念,C++中用指针数组同样可以实现
    2013-09-09
  • 微信小程序支付C#后端源码

    微信小程序支付C#后端源码

    这篇文章主要为大家详细介绍了微信小程序支付C#后端源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • C#实现简单过滤非法字符实例

    C#实现简单过滤非法字符实例

    这篇文章主要介绍了C#实现简单过滤非法字符的方法,涉及C#针对字符串遍历与判断的相关技巧,非常简单实用,需要的朋友可以参考下
    2015-11-11
  • 解析美国东部时间与北京时间相互转换的实现代码

    解析美国东部时间与北京时间相互转换的实现代码

    本篇文章是对美国东部时间与北京时间相互转换的实现代码进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • 深入C#判断操作系统类型的总结详解

    深入C#判断操作系统类型的总结详解

    本篇文章是对在C#中判断操作系统类型的总结进行了详细的分析介绍,需要的朋友参考下
    2013-05-05

最新评论