JSON格式转换

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

模拟Json发送数据实现解析与格式转换的测试程序(不使用NuGet包)


前言

最近在写模拟json格式转换的测试程序,完成后总结一下,也分享给大家。实际上json数据实现格式转换的时候有专门的库,需要通过nuget包去下载,因为涉及移植性的问题,所以带我的师父直接带我手撕代码,开发一个小的测试程序。在实现的过程中感觉整个的测试程序最重要的部分,就在于json数据的格式化与解析。


JSON格式的解析与转换

1.Json的解析

需要先将string数据转为JSONNode 类型,再利用foreach循环去解析,具体见下方Json格式的转换中的代码部分。

 JSONNode jsonFileAuto = JSON.Parse(jsonSFileAutoReply);
 FormatENQ2(jsonFileAuto);
 /*
 foreach (KeyValuePair<string, JSONNode> keyValue in json)
           	{
            	string key = keyValue.Key;
                JSONNode value = keyValue.Value;
            }
            */

只需要根据格式一层层去添加相应的符号就可以了,我在这里介绍了一个二层格式的转换方法。

2.json格式的转换

只需要根据解析后的数据一层层去添加相应的符号就可以了,我在这里介绍了一个二层格式的转换方法。

 public void FormatENQ2(JSONNode json)
        {
            textBox.AppendText("{");
            textBox.AppendText("\r\n");
            int count = json.Count;
            foreach (KeyValuePair<string, JSONNode> keyValue in json)
            {
                count--;
                string key = keyValue.Key;
                JSONNode value = keyValue.Value;
                textBox.AppendText("\t");
                textBox.AppendText("\"" + key.ToString() + "\"" + ":");
                // textBox11.AppendText(String.Format("\"{0}\"", key));
                textBox.AppendText("{");
                textBox.AppendText("\r\n");
                int count1 = value.Count;
                foreach (KeyValuePair<string, JSONNode> keyValue1 in value)
                {
                    count1--;
                    string key1 = keyValue1.Key;
                    JSONNode value1 = keyValue1.Value;
                    textBox.AppendText("\t\t");
                    textBox.AppendText("\"" + key1.ToString() + "\"" + ":");
                    textBox.AppendText(value1.ToString());
                    if (count1 != 0) { textBox.AppendText(","); }
                    textBox.AppendText("\r\n");
                }
                textBox.AppendText("\t}");
                if (count != 0) { textBox.AppendText(","); }
                textBox.AppendText("\r\n");
                //处理键值对 
            }
            textBox.AppendText("}");
            textBox.AppendText("\r\n");
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值