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

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

当我们拿到一大段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

标签:C#,格式化,JSON
0
投稿

猜你喜欢

  • 不安装excel使用c#创建excel文件

    2023-02-20 07:03:25
  • Android轻松实现多语言的方法示例

    2023-02-17 19:33:38
  • android之datepicker控件的用法

    2021-12-26 04:07:31
  • 简略分析Android的Retrofit应用开发框架源码

    2023-09-17 22:12:30
  • Java中Socket用法详解

    2021-07-27 07:14:07
  • JAVA OutputStreamWriter流的实现

    2021-08-12 19:45:47
  • C#实现Excel导入sqlite的方法

    2021-12-02 23:38:17
  • C#中的自动类型转换和强制类型转换

    2023-08-10 07:11:14
  • Android重要控件SnackBar使用方法详解

    2022-11-10 04:49:41
  • Java 多线程等待优雅的实现方式之Phaser同步屏障

    2023-11-29 09:47:43
  • .net实现序列化与反序列化实例解析

    2022-08-05 06:42:08
  • Java 设计模式之责任链模式及异步责任链详解

    2021-08-08 19:14:23
  • Android编程之交互对话框实例浅析

    2021-09-09 04:47:08
  • Android简单实现弹幕效果

    2022-08-12 01:24:08
  • 深入解析Spring Cloud内置的Zuul过滤器

    2022-05-16 12:49:04
  • ImportBeanDefinitionRegistrar手动控制BeanDefinition创建注册详解

    2021-11-11 18:49:18
  • spring boot starter actuator(健康监控)配置和使用教程

    2021-07-29 06:24:18
  • Jetpack Compose修饰符专项精讲

    2021-11-28 06:33:21
  • 基于Flutter实现图片选择和图片上传

    2023-07-06 04:28:50
  • Java JDK与cglib动态代理有什么区别

    2023-07-23 08:10:15
  • asp之家 软件编程 m.aspxhome.com