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内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C#格式化json字符串的方法分析

    本文实例讲述了C#格式化json字符串的方法.分享给大家供大家参考,具体如下: 将Json字符串转化成格式化表示的方法: 字符串反序列化为对象-->对象再序列化为字符串 使用Newtonsoft.Json提供的API,下载地址:http://www.newtonsoft.com/json 很多时候我们需要将json字符串以 { "status": 1, "sum": 9 } 这种方式显示,而从服务端取回来的时候往往是这样 {"status"

  • C# JSON格式化转换辅助类 ConvertJson

    可能我们用惯了 Newtonsoft.Json.dll 等第三方的类库来实现序列化等类似的操作,但是有时只是简单的用一下,感觉没必要那么费事,所谓杀鸡焉用牛刀,自制个小刀即可. 代码分享给大家,如下: using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Reflection; using System.Collections; using System

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

    目录 实现功能: 开发环境: 实现代码: 当我们拿到一大段JSON字符串的时候,分析起来简直头皮发麻,相信很大一部分朋友也都会直接去BEJSON等网站去做一个JSON格式化,已方便自己查看数据.分析日志等 本篇我们可以使用JSON.NET来实现JSON数据的格式化. 实现功能: 格式化JSON字符串 开发环境: 开发工具: Visual Studio 2013 .NET Framework版本:4.5 实现代码: //第一种方式 private void btnFormat1_Click(obj

  • mysql查询字段类型为json时的两种查询方式

    表结构如下: id varchar(32) info json 数据: id = 1 info = {"age": "18","disname":"小明"} -------------------------------------------- 现在我需要获取info中disanme的值,查询方法有: 1. select t.id,JSON_EXTRACT(t.info,'$.disname') as disname fro

  • jQuery autoComplete插件两种使用方式及动态改变参数值的方法详解

    本文实例讲述了jQuery autoComplete插件两种使用方式及动态改变参数值的方法.分享给大家供大家参考,具体如下: 一.一次加载.多次使用: 前端JS代码: /*客户名称自动匹配*/ function customerAutoComplete(){ $.ajax({ type:"GET", url:encodeURI("/approvalajax/salesOrderApproval_findCustomerList"), dataType:"j

  • ajax的两种提交方式(get/post)和两种版本

    最近比较闲,就把以前用过的技术串一下做个手札,方便以后自己偷懒,小鸟你们幸福了. 首先主要是将javascript版本ajax做下注释:ajax异步刷新主要是将所需条件拼成字符串传入后台,处理之后,直接调用回调函数将所得数据返还给页面,并加以显示,因为还在本页面,所以不用刷新页面,懂了了吧,本篇也用encodeURI对字符串做了加密,并在类里做了解码,其中需要一些注意的地方在源码里做了注释.get/post两种提交方式,但get提交容易乱码,一定多加注意 jsp页面: 复制代码 代码如下: <%

  • 详解Nginx 和 PHP 的两种部署方式的对比

    详解Nginx 和 PHP 的两种部署方式的对比 2种部署方式简介 第一种 前置1台nginx服务器做HTTP反向代理和负载均衡 后面N太服务器的Nginx做Web服务,并调用php-fpm提供的fast cgi服务 此种部署方式最为常见,web服务和PHP服务在同一台服务器上都有部署 第二种 前置1台nginx服务器做Web服务 后面服务器只部署php-fpm服务,供nginx服务器调用 前置1台nginx服务器,在调用后面多例php-fpm服务时,也可以做到负载均衡 如下图 : 对比 从系统

  • Java 中 Form表单数据的两种提交方式

    1 GET - 从指定的服务器中获取数据 1.1 GET方法 使用GET方法时,查询字符串(键值对)被附加在URL地址后面一起发送到服务器,例如:http://localhost:8080//customer/customer_info?res=json&mt=0&custId=1 1.2 特点 (1) GET请求能够被缓存 (2) GET请求会保存在浏览器的浏览记录中 (3) 以GET请求的URL能够保存为浏览器书签 (4) GET请求有长度限制(不能多于1024字节) (5) GET请

  • bootstrap paginator分页插件的两种使用方式实例详解

    分页有两种方式: 1. 前台分页:ajax一次请求获取全部数据,适合少量数据(万条数据以下): $.ajax({ type: "GET", url: "",//后台接口地址 dataType: "json", success: function (msg) { var pages = Math.ceil(msg.data / 5);//data是数据总量 var element = $('#id');//对应ul的id element.boots

  • 深入浅析Restful接口的两种使用方式

    为什么用restful接口? 怎么用呢? restful接口常用的两种方式是get和post.下面简单介绍一下这两种方式的使用. 由于调用restful接口是通过url的方式来访问后端的代码.新建CustRegisterApi类以后,除了基本的注入外,还需要配置url的地址.以后的demo就在这个类里面写了. <strong><span style="font-size:18px;">@RestController @RequestMapping(value =

  • Android Studio自动排版的两种实现方式

    Android Studio这样的集成开发环境虽然代码自动化程度很高,但是自动化程度高导致人的自主性就下降了,而且总是依赖编辑器的功能也会搞得代码排版很别扭. 最难受的是你在Android Studio中编写界面.xml文件的时候,代码自动化程度不高,缩进什么的都不自动,改个代码都能搞得排版一塌糊涂. 所以我就去网上找了两个自动排版的方法: (1)Ctrl + Alt + L: 但是可能会与QQ的快捷键有冲突, 去在QQ设置里面的热键对应的改掉就没冲突了. (2)还有一个不用记快捷键的好办法:就

  • 详解springboot集成websocket的两种实现方式

    WebSocket跟常规的http协议的区别和优缺点这里大概描述一下 一.websocket与http http协议是用在应用层的协议,他是基于tcp协议的,http协议建立链接也必须要有三次握手才能发送信息.http链接分为短链接,长链接,短链接是每次请求都要三次握手才能发送自己的信息.即每一个request对应一个response.长链接是在一定的期限内保持链接.保持TCP连接不断开.客户端与服务器通信,必须要有客户端发起然后服务器返回结果.客户端是主动的,服务器是被动的.  WebSock

随机推荐