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());