视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
JSON在ASP.NET中使用方法
2020-11-27 22:38:03 责编:小采
文档


Json.NET的简单介绍
首先介绍一个为方便在.NET中使用JSON的API,Json.NET。它方便我们读取从浏览器流向服务器的JSON对象,也方便在响应流中写入JSON对象。

Json.NET只提供了服务器端的方法,主要有实现JSON文本与XML互相转换的类,有自定义读写JSON的JsonReader类和JsonWriter类,还有一个非自定义读写JSON的JavaScriptSerializer类。

ASP.NET AJAX中,服务器端由JavaScriptSerializer类的几个方法来用于实现序列化和反序列化能力。在Json.NET中,服务器端的序列化和反序列化能力则主要由JavaScriptConvert类的几个方法提供。本篇的例子只使用了JavaScriptConvert。

JavaScriptConvert
Json.NET中,这个类用于序列化和反序列化JavaScript对象。
这个类有两个方法:

  • SerializeObject(object value, params JsonConverter[] converters),序列化,它有个重载方法SerializeObject(object value)
  • DeserializeObject(string value, Type type),反序列化,它有个重载方法DeserializeObject(string value)
  • 在客户端,Json.NET未提供支持。

    下面我们尝试用这个API在ASP.NET中实现用JSON交互数据。

    使用Json.NET在C/S中交互JSON数据的简单例子
    1、先新建一个ASP.NET 网站。

    2、将下载到的Binary文件夹中的Newtonsoft.Json.dll和Newtonsoft.Json.XML放入网站的bin文件,当然要先新建bin文件夹。然后对dll添加引用。

    3、切换到设计模式,从标准工具箱向页面上添加三个Label,Text分别为EmployeeID、EmployeeName、EmployeeInfo;三个Textbox,ID分别为txtID、txtName、txtInfo;然后添加一个Button,ID为btnToJSONString,Text为Invoke ToJSONString;然后添加一个Textbox,ID为txtJSON,Textmode为MultiLine,rows设为5;接着再分别添加一个Button和Textbox,ID为btnToObject、txtStrEmployee,Button的Text为Invoke ToStrEmployee。

    4、添加一个WebService项目。

    编写一个Employee类,然后两个WebMethod,接着在项目中对该Web服务添加引用。代码如下:

    using System;
    using System.Web;
    using System.Collections;
    using System.Web.Services;
    using System.Web.Services.Protocols;
    using Newtonsoft.Json;
    
    class Employee
    {
     private string[] employeeInfo;
     
     public int EmployeeID;
     public string EmployeeName;
     public string[] EmployeeInfo
     {
     get { return this.employeeInfo; }
     set { this.employeeInfo = value;}
     }
    }
    
    /**//// <summary>
    /// WebService 的摘要说明
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    public class WebService : System.Web.Services.WebService {
    
     public WebService () {
    
     //如果使用设计的组件,请取消注释以下行 
     //InitializeComponent(); 
     }
    
     [WebMethod]
     public string ToJSONString(int employeeID, string employeeName, string[] employeeInfo) 
     {
     Employee employee = new Employee();
     employee.EmployeeID = employeeID;
     employee.EmployeeName = employeeName;
     employee.EmployeeInfo = employeeInfo;
    
     return JavaScriptConvert.SerializeObject(employee);
     }
    
     [WebMethod]
     public string ToStrEmployee(string strJSON)
     {
     Employee decerializedEmployee = (Employee)JavaScriptConvert.DeserializeObject(strJSON, typeof(Employee));
     return "ID: " + decerializedEmployee.EmployeeID + " "
     + "Name: " + decerializedEmployee.EmployeeName + " "
     + "Info: " + decerializedEmployee.EmployeeInfo.ToString();
     } 
    }

    成员的属性类型分别为数字、字符串和数组。

    5、对两个Button编写事件代码

    protected void btnToJSONString_Click(object sender, EventArgs e)
     {
     MyServ.WebService MyWebServ = new MyServ.WebService();
     string employeeJSON = MyWebServ.ToJSONString(Int32.Parse(txtID.Text), txtName.Text, txtInfo.Text.Split(','));
     txtJSON.Text = employeeJSON;
     }
     protected void btnToStrEmployee_Click(object sender, EventArgs e)
     {
     MyServ.WebService MyWevServ = new MyServ.WebService();
     string strEmployee = MyWevServ.ToStrEmployee(txtJSON.Text);
     txtStrEmployee.Text = strEmployee;
     } 

    6、按Ctrl + F5运行;在EmployeeID、EmployeeName、EmployeeInfo中输入123、Hunts.C及一些个人信息(用逗号隔开);点击Invoke ToJSONString,经服务器端序列化后,结果在txtJSON文本框中;然后点击Invoke ToStrEmployee,此时txtJSON文本框中的JSON文本传输给服务器端,服务器端读取该JSON并反序列化成对象,而后在txtStrEmployee中写入Employee的成员值。

                     

    在ASP.NET中如何使用JSON就介绍到这里,希望这篇文章对大家的学习有所帮助。

    下载本文
    显示全文
    专题