C#编程之Json解析和生成
白羽 2018-07-10 来源 :网络 阅读 1498 评论 0

摘要:本文将带你了解C#编程之Json解析和生成,希望本文对大家学C#/.Net有所帮助。



C#中Json解析和生成

当年自己是新手时,用C#写程序,在C#中解析Json着实头疼了一把。同事在用一个叫Newtonsoft.json的dll,使用方法不是很舒服,每次都得调.net版本;让人烦不胜烦。说真的,我倒现在还没弄熟Newtonsoft.json的用法,类是继承的,这玩意就很难调。我们用的json做协议,每个格式又不完全一样。。。
我们平常都是小软件一个人能完成的,急需要一个小巧又舒适的库,满足需求即可。索性自己写了一个,千行以内;不需要dll,不需要第三方组件,随时改.net版本,不需要调dll版本;能快速生成和解析自己需要的数据。源码开放,代码量少,随时可修改。

使用方法:

生成Josn:

using CsharpJson;namespace test

{

    class MainClass

    {

        public static void Main(string[] args)

        {

            //Json对象

            JsonObject child = new JsonObject();

            //下标形式添加键值对

            child["china"] = "hello";

            child["shanghai"] = 123;

            //调用Add方法添加键值对

            child.Add("one", "abc");

            child.Add("two", 12);

            child.Add("three", 44.9);

            //Json数组

            JsonArray arr = new JsonArray();

            arr[0] = true;

            arr[1] = 100;

            arr[2] = "你好";

            arr.Add("12");

            arr.Add(456);

            arr.Add(false);

            arr.Add(child);

            JsonObject obj = new JsonObject();

            obj.Add("中国", "china");

            obj.Add("北京", true);

            obj.Add("上海", 123);

            obj.Add("NULL",null);

            //添加对象

            obj.Add("childobj", child);

            //添加数组

            obj.Add("arrayvalue", arr);

            //定义Json文档解析类

            JsonDocument doc=new JsonDocument();

            //给文档解析类obj对象

            doc.Object=obj;

            //生成

            string val = doc.ToJson();

            Console.WriteLine("生成的Json字符串:");

            Console.WriteLine(val);

        }

    }

}

解析Json:

string data = "{\"中国\": \"china\",\"北京\": true,\"上海\": 123}";//定义解析Json文档解析类

JsonDocument doc = JsonDocument.FromString(data);//判断是否是object类型if(doc.IsObject())

{

    //解析成object

    JsonObject jsobj = doc.Object;

    //遍历键值对

    foreach(string key in jsobj.Keys)

    {

        //判断类型,然后输出

        switch(jsobj[key].Valuetype)

        {

            case JsonType.BOOL:    //bool型

                Console.WriteLine("key={0},value={1}",key,jsobj[key].ToBool());

                break;

            case JsonType.NUMBER:    //数字类型

                Console.WriteLine("key={0},value={1}",key,jsobj[key].ToInt());

                break;

            case JsonType.STRING:    //字符串

                Console.WriteLine("key={0},value={1}",key,jsobj[key].ToString());

                break;

        }

    }

}

 

 


以上就介绍了C#.NET的相关知识,希望对C#.NET有兴趣的朋友有所帮助。了解更多内容,请关注职坐标编程语言C#.NET频道!


本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程