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 = "";
}
实现效果:
来源:https://blog.csdn.net/qq_27410185/article/details/123040341
0
投稿
猜你喜欢
- 在springboot中,默认继承好了一套完好的redis包,可以直接使用,但是如果使用中出了错不容易找到错误的原因,因此这里使用自己配置的
- 本文实例讲述了Java Swing中JTable渲染器与编辑器用法。分享给大家供大家参考,具体如下:JTable的内容、外观、事件响应在很大
- Vector实现班级信息管理系统,供大家参考,具体内容如下代码如下:import java.util.*;public class Demo
- SpringBoot 2.1.4 错误处理机制springboot的自动配置中帮我们配置了相关的错误处理组件,例如访问一个不存在的页面,就会
- byte:java中最小的数据类型。1字节/8位。-128(2^7)~127(2^7-1),默认值0。short:短整型,2字节/16位,取
- MyBatis插入Insert、InsertSelective的区别逆向自动生成的mybatis对应配置Mapper文件里面,有两个方法,分
- 数据库结构如下strategy中有外键member_id(关联member表)外键strategy_category(关联category表
- 原理分析:迅雷的thunder://地址就是将普通url地址加前缀‘AA'、后缀‘ZZ',再base64编码后得到的字符串实
- 想在Linux进行JAVA开发吗?环境如何搭建,第一个HelloWorld如何实现,下面马上奉献:1、环境搭建1.1 Java JDK 的安
- JPA设置表名和实体名,表字段与实体字段的对应首先 你的jpaProperties配置项中要有<prop key="hibe
- 本文实例为大家分享了java生成字母验证码的具体代码,供大家参考,具体内容如下import java.awt.BasicStroke;imp
- 对Element和Node有困惑是因为对xml整个结构不了解,以下作为一个简要概述:以下图为w3c.org网站的xml文档树图:从上图可以看
- Redis缓存中间件缓存是什么  所谓缓存就是数据交换的缓冲区(称作Cache [ k&aeli
- synchronized都问啥?如果Java面试有什么是必问的,synchronized必定占据一席之地。初出茅庐时synchronized
- 本文向您展示了在 Flutter 中实现完美的验证码输入框几种不同方法。重点是什么?真实世界的 完美的验证码输入框或 PIN 输入 UI 通
- Java源码系列三-工具类Arrays今天分享java的源码的第三弹,Arrays这个工具类的源码。因为近期在复习数据结构,了解到Array
- Spring boot默认使用的是SimpleCacheConfiguration,即使用ConcurrentMapCacheManager
- 本文实例为大家分享了Java实现简易俄罗斯方块的具体代码,供大家参考,具体内容如下一、将对象抽象为类首先考虑俄罗斯方块游戏中含有哪些具体的对
- 1,IDEA中Lombok作用数据库: 库 表 字段 对应的值 user表(id,name,age)实体对象pojo: 用来封装数据库中的数
- Java 中的线程有以下状态:新建状态(New):新创建的线程,还未执行。就绪状态(Runnable):执行了 start() 方法,等待运