C#序列化Json数据

json数据序列化,想要工作效率高,好用的工具少不了,首先在网上找一段Json格式的数据,

{
    "reason": "查询成功!",
    "result": {
        "city": "广州",
        "realtime": {
            "temperature": "25",
            "humidity": "29",
            "info": "晴",
            "wid": "00",
            "direct": "东北风",
            "power": "2级",
            "aqi": "60"
        },
    },
    "error_code": 0
}

去到json转换C#类工具链接,将json数据转换成类,方便好用

public class Realtime
{
    /// <summary>
    /// 
    /// </summary>
    public string temperature { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public string humidity { get; set; }

    /// <summary>
    /// 晴
    /// </summary>
    public string info { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public string wid { get; set; }

    /// <summary>
    /// 东北风
    /// </summary>
    public string direct { get; set; }

    /// <summary>
    /// 2级
    /// </summary>
    public string power { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public string aqi { get; set; }

}



public class Result
{
    /// <summary>
    /// 广州
    /// </summary>
    public string city { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public Realtime realtime { get; set; }

}



public class Root
{
    /// <summary>
    /// 查询成功!
    /// </summary>
    public string reason { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public Result result { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public int error_code { get; set; }

}

实例化对象+初始化数据

            //实例化三个对象顺便初始化
            //第三层
            Realtime realtime = new Realtime()
            {
                temperature = "25",
                humidity = "29",
                info = "晴",
                wid = "00",
                direct = "东北风",
                power = "2级",
                aqi = "60"
            };

            //第二层
            Result result = new Result()
            {  
                city ="广州",
                realtime = realtime
            };

            //第一层
            Root root = new Root()
            {
                reason = "查询成功!",
                result = result,
                error_code = 0
            };

序列化Root类,顺便打印一下序列化之后的结果

string output = JsonConvert.SerializeObject(root);
Console.WriteLine(output);

效果--嘎嘎猛

{"reason":"查询成功!","result":{"city":"广州","realtime":{"temperature":"25","humidity":"29","info":"晴","wid":"00","direct":"东北风","power":"2级","aqi":"60"}},"error_code":0}

复制这段结果到这里JSON在线解析

{
    "reason": "查询成功!",
    "result": {
        "city": "广州",
        "realtime": {
            "temperature": "25",
            "humidity": "29",
            "info": "晴",
            "wid": "00",
            "direct": "东北风",
            "power": "2级",
            "aqi": "60"
        }
    },
    "error_code": 0
}

最后发现又回到最初的起点,反复套娃,反序列化可以将字符串转换成类;

 

 //反序列化*****************8
            JObject s_root = (JObject)JsonConvert.DeserializeObject(output);

            JObject s_result = (JObject)JsonConvert.DeserializeObject(s_root["result"].ToString());

            richTextBox2.Text = s_root.ToString();
            Console.WriteLine(s_root.ToString());
            Console.WriteLine(s_result.ToString());

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三目条件

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值