`
yzd
  • 浏览: 1843256 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Json 与 后台对象的相互转化

 
阅读更多
<p><textarea cols="50" rows="15" name="code" class="c-sharp">    public class Common
    {
        /// &lt;summary&gt;
        /// 解析json对象为C#对象
        /// &lt;/summary&gt;
        /// &lt;typeparam name="T"&gt;&lt;/typeparam&gt;
        /// &lt;param name="json"&gt;&lt;/param&gt;
        /// &lt;returns&gt;&lt;/returns&gt;
        public static T JsonToObj&lt;T&gt;(string json)
        {
            DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
            T obj;
            using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
            {
                obj = (T)ser.ReadObject(ms);
            }
            return obj;
        }
        /// &lt;summary&gt;
        /// 将对象转换为json
        /// &lt;/summary&gt;
        /// &lt;param name="obj"&gt;&lt;/param&gt;
        /// &lt;returns&gt;&lt;/returns&gt;
        public static string ObjToJson(object obj)
        {
            DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
            using (MemoryStream ms = new MemoryStream())
            {
                serializer.WriteObject(ms, obj);
                StringBuilder sb = new StringBuilder();
                sb.Append(Encoding.UTF8.GetString(ms.ToArray()));
                return sb.ToString();
            }
        }
    }
    public static class JSONExtension
    {
        public static string ToJSON(this object obj)
        {
            DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
            using (MemoryStream ms = new MemoryStream())
            {
                serializer.WriteObject(ms, obj);
                return Encoding.Default.GetString(ms.ToArray());
            }
        }
        public static T ParseJSON&lt;T&gt;(this string str)
        {
            T obj = Activator.CreateInstance&lt;T&gt;();
            using (MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(str)))
            {
                DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
                return (T)serializer.ReadObject(ms);
            }
        }
    } 
</textarea></p>
<p>Common与JSONExtension均可以实现</p>
分享到:
评论

相关推荐

    仿句子迷界面(只实现了简单的json与后台交互)

    而Fastjson是阿里巴巴的一个高性能的JSON库,它支持Java对象与JSON数据之间的相互转换,使得开发者能够方便地处理JSON数据。 具体来说,项目可能包含以下步骤: 1. **初始化OkHttp**: 创建OkHttpClient实例,配置如...

    将集合转换为Json的相关jar包

    通过引入如Jackson、Gson和Fastjson这样的库,开发者能够轻松地处理JSON与Java集合间的相互转换,从而提升应用程序的性能和用户体验。在实际项目中,选择合适的库应考虑性能、易用性和社区支持等因素。

    JSON_demo.zip_DEMO_JSON_android_android json

    2. **Jackson库**:另一个流行的库,提供了更丰富的功能和更高的性能,同样可以方便地进行JSON与Java对象的相互转换。 3. **org.json库**:Android SDK自带的一个轻量级库,用于解析和生成JSON。它提供了JSONObject...

    net.sf.json 依赖的jar包(6个)

    1. **net.sf.json**: 这个库的核心组件,提供JSON对象与Java对象之间的相互转换。它支持基本类型的转换,如字符串、数字、布尔值,以及更复杂的对象,如数组和Map。通过`JSONObject`和`JSONArray`类,开发者可以方便...

    Struts spring ibatis json整合实例(附完整jar包)

    在这个整合实例中,它们与JSON一起工作,实现前后台的数据交互。 首先,Struts2是Apache基金会的一个开源项目,主要用于Web应用的模型-视图-控制器(MVC)架构。它提供了一种通过Action和Result来组织业务逻辑的...

    python的json中方法及jsonpath模块用法分析

    在Python中,使用json模块可以实现python类型与JSON字符串之间的相互转换。常用的方法有: - json.dumps():将Python对象编码成JSON格式的字符串。通过此方法,可以指定参数如indent(缩进空格数)以及ensure_ascii...

    Html与Javascript互相转换工具

    JSON常用于在服务器和客户端之间传递数据,JavaScript可以通过`JSON.stringify()`将对象转换为JSON字符串,再用`JSON.parse()`将字符串还原为对象。 此外,考虑到HTML5引入了离线存储(如localStorage和...

    后台架构.pdf

    ### 后台架构知识点概述 #### 一、项目介绍与技术架构实现模式 **项目介绍:** 本项目为一个PC端后台管理系统,旨在提供高效、稳定的管理平台,以支持日常运营活动和技术需求。 **技术架构实现模式:** 采用前后...

    Gson, XML结合Ajax(结合servlet技术)

    结合上述技术,"Gson与Ajax"的组合常用于前端通过Ajax异步请求后端服务,后端使用Servlet处理请求,并通过Gson将Java对象转化为JSON响应给前端。这种方式提高了用户体验,因为页面无需完全刷新就能获取和显示新数据...

    SSH2 整合简单增删改查实例,仅供学习使用

    在这个例子中,Gson可能被用到了后台数据与前端Ajax交互的过程中,将Java对象转换成JSON字符串,通过Ajax发送到客户端,或者接收客户端的JSON数据并转化为Java对象。 5. **Xstream**:Xstream是一个XML序列化库,它...

    MySql + JDBC +EasyUI DataGrid实现数据表格的展示和分页

    为了将数据库中的记录转化为前端友好的格式,通常会定义DTO对象,该对象的属性与数据库表字段一一对应。查询结果转换为DTO对象列表,再转换成JSON,这样前端就可以直接解析并展示。 总结,本项目结合了MySQL数据库...

    最流行的框架MVPArms-master

    5. Gson:Gson是Google提供的一个Java库,用于在JSON和Java对象之间进行相互转换。在MVPArms中,Gson常用于将网络响应数据转换为Java对象,方便进一步处理。 6. RxLifecycle:这个库帮助开发者管理RxJava的生命周期...

    tseng-master.zip

    7. **Json解析**:如果搜索结果来自网络,那么Tseng可能涉及到了Json数据的解析,通过Gson或org.json库将接收到的Json字符串转化为Java对象。 8. **RecyclerView**:为了展示搜索结果,项目可能使用了RecyclerView...

    完整项目之QT5开发源码——聊天工具(MyselfQQ)

    QT5是一种跨平台的C++图形用户界面应用程序...在实际学习过程中,建议逐步拆解源码,关注每个类的作用,以及它们是如何通过信号与槽机制相互协作的。同时,不要忘记实践操作,修改代码以增加新功能,以此巩固理论知识。

    Rxjava+Retrofit项目demo

    2. **转换器**:GsonConverter、JacksonConverter等转换器用于将Java对象与JSON数据互相转换,实现数据序列化和反序列化。 3. **网络请求**:Retrofit的Call对象表示一个HTTP请求,enqueue()用于异步请求,execute()...

    Spring MVC面试题(2022最新版)

    **@ResponseBody注解的作用**:用于将控制器的方法返回对象转化为响应体返回给前端。 **@PathVariable和@RequestParam的区别**: - `@PathVariable`用于获取URL路径中的变量值。 - `@RequestParam`用于获取URL查询...

    局域网聊天QQ-基础版

    例如,JSON或XML格式可以用于将消息对象转化为字符串,便于在网络中传递。 2. Android权限管理:由于涉及到网络通信,应用需要获取相应的Android权限,如INTERNET权限,才能正常工作。 3. 多线程:为了保证用户体验...

    基于Android的历史上的今天.zip

    6. **数据解析与模型类**:从服务器获取的历史数据通常以JSON格式存在,需要使用Gson、Jackson等库进行解析,转化为Java对象。创建对应的Model类来存储和操作历史事件的数据。 7. **SQLite数据库**:为了离线存储和...

    android应用开发全书源码

    - **JSON解析**:如Gson或Jackson库的使用,将服务器返回的JSON数据转化为Java对象。 - **WebSocket通信**:学习如何实现长连接的实时通信。 5. **多线程与异步处理**: - **AsyncTask**:源码中可能包含使用...

    基于安卓的校园跳蚤市场系统设计与实现-kaic.doc

    【标题】: "基于安卓的校园跳蚤市场系统设计与实现" 【摘要】: 随着互联网技术的快速发展,移动终端的需求日益增长,电子商务在日常生活中扮演着越来越重要的角色。校园电子商务,尤其是校园跳蚤市场,对于大学生来...

Global site tag (gtag.js) - Google Analytics