您的位置:首页 - 教程 - C# - 正文
使用Newtonsoft.Json把Json转化为C#对象
本次例子使用ASP.NET WebForm,新建一个HtJson.aspx页面,aspx页面无需修改,代码保持为:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="HtJson.aspx.cs" Inherits="ExampleHoverTree.HtExample.HtJson" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>
而HtJson.aspx.cs的代码为:
using Newtonsoft.Json;
using System;

namespace ExampleHoverTree.HtExample
{
public partial class HtJson : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string json = "{\"access_token\":\"HoverTreeAccessTokenValue\",\"expires_in\":7200}";//json的字段数可以比类的属性个数少,并且可以大小写不同。何问起总结
//json= "{\"errcode\":40013,\"errmsg\":\"invalid appid\"}";
//json= "{\"errcode\":40013,\"errmsg\":\"invalid appid\",\"htmore\":\"hewenqi\"}";//json可以有字段名在类的属性中是不存在的,例如htmore,但是没加入转化。何问起总结
HtWxAccessToken m = JsonConvert.DeserializeObject<HtWxAccessToken>(json);

string h_AccessToken = m.Access_token;

Response.Write("Access_token:" + m.Access_token
+ "<br />Expires_in:" + m.Expires_in+
" <br />Errcode:" + m.Errcode+
" <br />Errmsg:" + m.Errmsg);
}
}

class HtWxAccessToken
{
public string Access_token { get; set; }
public int Expires_in { get; set; }

public int Errcode { get; set; }

public string Errmsg { get; set; }
}
}
运行结果:
如果把代码中json按后两种方式赋值,也是可以运行的。要记得引用程序集Newtonsoft.Json.dll,如图:

评论: