快捷搜索:  汽车  科技

c怎么处理json(C格式化JSON的两种方式)

c怎么处理json(C格式化JSON的两种方式)//第一种方式 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 (

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

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

c怎么处理json(C格式化JSON的两种方式)(1)

实现功能:

格式化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的两种方式)(2)

第一种方式的缩进字符和缩进量可以换成其他的看看效果,但个人觉得肯定没有空格看着舒服

由简入繁,拿来即用

后续精彩,持续关注

猜您喜欢: