对于本问题   我用三步来分别说明实现过程

1、定义一个类---- 实现转换的具体方法

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.IO;
  6. using System.Runtime.Serialization.Json;
  7.  
  8. namespace Test.JesonTest
  9. {
  10. public static class JsonHelper
  11. {
  12. //定义json操作运算
  13.  
  14. //将字jeson字符串转换为object对象
  15. public static T strToObject<T>(string jsonString)
  16. {
  17. using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)))
  18. {
  19. return (T)new DataContractJsonSerializer(typeof(T)).ReadObject(ms);
  20. }
  21. }
  22.  
  23. //将object对象反序列为jeson字符串
  24. public static string objectToStr(object jsonObject)
  25. {
  26. using (var ms = new MemoryStream())
  27. {
  28. new DataContractJsonSerializer(jsonObject.GetType()).WriteObject(ms, jsonObject);
  29. return Encoding.UTF8.GetString(ms.ToArray());
  30. }
  31. }
  32. }
  33. }

  

  说明:首先,当然是项目是3.5+的;必须添加引用:System.Runtime.Serialization 和 System.ServiceModel

2、创建一个OBJECT对象类

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5.  
  6. namespace Test.JesonTest
  7. {
  8. public class Person
  9. {
  10. public int id { get; set; }
  11. public string name { get; set; }
  12. public int age { get; set; }
  13.  
  14. public Person() {
  15. id = ;
  16. name = "xuhyuan";
  17. age = ;
  18. }
  19. }
  20. }

  3、具体调用实现实例

      前台.aspx页面html。

  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Testjeson.aspx.cs" Inherits="Test.JesonTest.Testjeson" %>
  2.  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml">
  5. <head runat="server">
  6. <title></title>
  7. </head>
  8. <body>
  9. <form id="form1" runat="server">
  10. <div>
  11. <label style="color: Purple">
  12. 将Jeson字符串和Object之间的相互转换实现</label>
  13. <br />
  14. <br />
  15. <br />
  16. <br />
  17. <asp:Button ID="but_str_obj" runat="server" Text="将jeson字符串转换为Object"
  18. onclick="but_str_obj_Click" />
  19.       
  20. <asp:Button ID="but_obj_str" runat="server" Text="将Object换为jeson字符串转"
  21. onclick="but_obj_str_Click" />
  22. <br /><br />
  23. <asp:textbox ID="txt_resoult" runat="server" Height="207px"
  24. TextMode="MultiLine" Width="624px"></asp:textbox>
  25. </div>
  26. </form>
  27. </body>
  28. </html>

  c#页面后台代码

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.UI;
  6. using System.Web.UI.WebControls;
  7. using System.Web.Script.Serialization;
  8.  
  9. namespace Test.JesonTest
  10. {
  11. public partial class Testjeson : System.Web.UI.Page
  12. {
  13. protected void Page_Load(object sender, EventArgs e)
  14. {
  15.  
  16. }
  17.  
  18. //将jeson字符串转换为object
  19. protected void but_str_obj_Click(object sender, EventArgs e)
  20. {
  21. string str_jeson = txt_resoult.Text.Trim();
  22.  
  23. if (!string.IsNullOrEmpty(str_jeson))
  24. {
  25. List<Person> pes=new List<Person>();
  26. pes = JsonHelper.strToObject<List<Person>>(str_jeson);
  27. str_jeson="";
  28. for (int i = ; i < pes.Count; i++)
  29. {
  30. str_jeson += "id=" + pes[i].id + ";name=" + pes[i].name + ";age=" + pes[i].age + "<br /><br /><br />";
  31. }
  32. }
  33.  
  34. txt_resoult.Text+=str_jeson;
  35. }
  36.  
  37. //将object转换为jeson字符串
  38. protected void but_obj_str_Click(object sender, EventArgs e)
  39. {
  40. Person pe = new Person();
  41. List<Person> pes = new List<Person>();
  42. pes.Add(pe);
  43. pes.Add(pe); pes.Add(pe);
  44.  
  45. //反序列化实现
  46. string json = JsonHelper.objectToStr(pes);
  47. txt_resoult.Text = json;
  48.  
  49. // 序列化----利用js实现
  50. //JavaScriptSerializer jss = new JavaScriptSerializer();
  51. }
  52. }
  53. }

c#中jeson字符串和OBJECT对象的相互转换的更多相关文章

  1. js中json字符串与json对象的相互转换

    web前端开发过程中,数据传输json是以字符串的形式传递,而js操作的是JSON对象. 一.JSON字符串转换为JSON对象 var obj = JSON.parse(str[, reviver]) ...

  2. Java中JSON字符串与java对象的互换实例详解

    这篇文章主要介绍了在java中,JSON字符串与java对象的相互转换实例详解,非常不错,具有参考借鉴价值,需要的朋友可以参考下 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JS ...

  3. Java中JSON字符串与java对象的互换实例详解(转)

    http://www.jb51.net/article/90914.htm 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要 ...

  4. 使用java中的反射获得object对象的属性值

    知识点:使用java中的反射获得object对象的属性值 一:场景 这两天开发代码时,调用别人的后台接口,返回值为Object对象(json形式的),我想获得object中指定的属性值,没有对应的ge ...

  5. C#-使用Newtonsoft.Json实现json字符串与object对象互转

    json字符串转object对象: IF004Response processResponse = JsonConvert.DeserializeObject<IF004Response> ...

  6. (转)Java中JSON字符串与java对象的互换实例详解

    在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很多的标签,这无疑占据了网络流量,JSON在这方面则做的很好, ...

  7. json字符串与json对象的相互转换

    什么是 JSON ? JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 JSON 独立于语言 * JSO ...

  8. json字符串与java对象的相互转换(jackson)

    1.java对象转换为json字符串 package com.chichung.json; import com.fasterxml.jackson.core.JsonProcessingExcept ...

  9. js 中json字符串转化json对象

    JSON字符串:var str = '{ "name": "cxh", "sex": "man" }'; JSON对象: ...

随机推荐

  1. POJ 2965 The Pilots Brothers' refrigerator 位运算枚举

      The Pilots Brothers' refrigerator Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 151 ...

  2. ASP.NET MVC轻教程 Step By Step 5——初识表单

    上一节我们将留言列表显示在Index视图里了,现在该添加一个留言的表单,好让用户自己添加留言. 首先在HomeController中添加一个名为“Write”的动作方法. public ActionR ...

  3. IntelIoT技术笔记Maven

    1.Maven project facet配置 错误信息: One or more constraints have not been satisfied.以及Cannot change versio ...

  4. I/O CPU

    http://www.educity.cn/zk/czxt/201306041038131789.htm http://blog.csdn.net/xiazdong/article/details/6 ...

  5. C语言中exit()与return的区别

    整理自exit函数和return函数 1.exit函数和return函数的主要区别是: 1)exit用于在程序运行的过程中随时结束程序,exit的参数是返回给OS的.main函数结束时也会隐式地调用e ...

  6. Vim识别编码

    http://blog.chinaunix.net/uid-20357359-id-1963123.html

  7. UIKit的手风琴菜单,单条展开和多条同时展开

    这个也要进来看看哈. 记得加多个属性时的用法就可以了. 因为官网提供太多的SAPMLE啦.. http://www.getuikit.net/docs/accordion.html <div c ...

  8. 修改Delphi工具控件的默认字体

    修改Delphi工具控件的默认字体: 注册表: Delphi 6:    HKEY_CURRENT_USER\Software\Borland\Delphi\6.0Delphi 7:    HKEY_ ...

  9. vsftp被动模式启用iptables访问设置

    vsftpd服务搭建好之后,如果是使用主动模式访问.那么启用iptables只需添加以下规则即可: -A RH-Firewall-1-INPUT -m state --state NEW -m tcp ...

  10. 添加Fragment注意事项

    配置(Configuration )改变是Android应用生命周期的一部分,如果发生了该事件(屏幕从横屏换行为竖屏),就会导致Activity被销毁然后重新创建.就算您在配置文件中设定Activit ...