热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C#对象转JSON字符串的方法与应用

本文介绍如何在C#中使用一般处理程序(ASHX)将对象转换为JSON字符串,并通过设置响应类型为application/json来确保客户端能够正确解析返回的数据。同时,文章还提供了HTML页面中不依赖jQuery的AJAX方法来接收和处理这些JSON数据的具体实现。

在 ASP.NET 中,可以通过创建一个 ASHX 文件(一般处理程序)来处理客户端请求并返回 JSON 数据。以下是将 C# 对象转换为 JSON 字符串并在响应中返回的示例代码:

首先,在 ASHX 文件中设置响应的内容类型为 JSON:

context.Response.COntentType= "application/json"; 这一行代码告知浏览器或客户端应用程序,服务器返回的数据格式为 JSON。

接着,使用 JavascriptSerializer 类将 C# 对象序列化为 JSON 字符串并写入响应流中:

context.Response.Write(new JavascriptSerializer().Serialize(new { status = "OK", message = "成功" }));

以上代码将创建一个新的匿名对象,包含状态码和消息,然后将其转换为 JSON 字符串发送给客户端。

接下来,我们来看看如何在 HTML 页面中接收这个 JSON 数据。这里提供了一个不使用 jQuery 的原生 Javascript 实现:

<script type="text/Javascript">window.onload = function() {document.getElementById("btn").onclick = function() {var username = document.getElementById("uname").value;var password = document.getElementById("pwd").value;var xhr = new XMLHttpRequest();xhr.open("POST", "/Handler1.ashx?username=" + encodeURIComponent(username) + "&password=" + encodeURIComponent(password), true);xhr.onreadystatechange = function() {if(xhr.readyState == 4) {if(xhr.status == 200) {var respOnse= JSON.parse(xhr.responseText);alert(response.status);}else{alert("请求失败");}}};xhr.send();};}script>

上述脚本中,当用户点击按钮时,会触发 AJAX 请求,向服务器发送用户名和密码参数,并接收 JSON 响应。通过调用 JSON.parse() 方法,可以将从服务器接收到的 JSON 字符串解析成 Javascript 对象,从而方便地访问其中的数据。

转载于: 原文链接


推荐阅读
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • Android 渐变圆环加载控件实现
    本文介绍了如何在 Android 中创建一个自定义的渐变圆环加载控件,该控件已在多个知名应用中使用。我们将详细探讨其工作原理和实现方法。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文介绍了如何利用JavaScript或jQuery来判断网页中的文本框是否处于焦点状态,以及如何检测鼠标是否悬停在指定的HTML元素上。 ... [详细]
  • 深入理解Tornado模板系统
    本文详细介绍了Tornado框架中模板系统的使用方法。Tornado自带的轻量级、高效且灵活的模板语言位于tornado.template模块,支持嵌入Python代码片段,帮助开发者快速构建动态网页。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • IneedtofocusTextCellsonebyoneviaabuttonclick.ItriedlistView.ScrollTo.我需要通过点击按钮逐个关注Tex ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • 在前两篇文章中,我们探讨了 ControllerDescriptor 和 ActionDescriptor 这两个描述对象,分别对应控制器和操作方法。本文将基于 MVC3 源码进一步分析 ParameterDescriptor,即用于描述 Action 方法参数的对象,并详细介绍其工作原理。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • JavaScript中属性节点的类型及应用
    本文深入探讨了JavaScript中属性节点的不同类型及其在实际开发中的应用,帮助开发者更好地理解和处理HTML元素的属性。通过具体的案例和代码示例,我们将详细解析如何操作这些属性节点。 ... [详细]
author-avatar
iz76mww
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有