首页 技术 正文
技术 2022年11月19日
0 收藏 451 点赞 4,850 浏览 2778 个字

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

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

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Runtime.Serialization.Json;namespace Test.JesonTest
{
public static class JsonHelper
{
//定义json操作运算 //将字jeson字符串转换为object对象
public static T strToObject<T>(string jsonString)
{
using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)))
{
return (T)new DataContractJsonSerializer(typeof(T)).ReadObject(ms);
}
} //将object对象反序列为jeson字符串
public static string objectToStr(object jsonObject)
{
using (var ms = new MemoryStream())
{
new DataContractJsonSerializer(jsonObject.GetType()).WriteObject(ms, jsonObject);
return Encoding.UTF8.GetString(ms.ToArray());
}
}
}
}

  

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

2、创建一个OBJECT对象类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;namespace Test.JesonTest
{
public class Person
{
public int id { get; set; }
public string name { get; set; }
public int age { get; set; } public Person() {
id = ;
name = "xuhyuan";
age = ;
}
}
}

  3、具体调用实现实例

      前台.aspx页面html。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Testjeson.aspx.cs" Inherits="Test.JesonTest.Testjeson" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<label style="color: Purple">
将Jeson字符串和Object之间的相互转换实现</label>
<br />
<br />
<br />
<br />
<asp:Button ID="but_str_obj" runat="server" Text="将jeson字符串转换为Object"
onclick="but_str_obj_Click" />
      
<asp:Button ID="but_obj_str" runat="server" Text="将Object换为jeson字符串转"
onclick="but_obj_str_Click" />
<br /><br />
<asp:textbox ID="txt_resoult" runat="server" Height="207px"
TextMode="MultiLine" Width="624px"></asp:textbox>
</div>
</form>
</body>
</html>

  c#页面后台代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Script.Serialization;namespace Test.JesonTest
{
public partial class Testjeson : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ } //将jeson字符串转换为object
protected void but_str_obj_Click(object sender, EventArgs e)
{
string str_jeson = txt_resoult.Text.Trim(); if (!string.IsNullOrEmpty(str_jeson))
{
List<Person> pes=new List<Person>();
pes = JsonHelper.strToObject<List<Person>>(str_jeson);
str_jeson="";
for (int i = ; i < pes.Count; i++)
{
str_jeson += "id=" + pes[i].id + ";name=" + pes[i].name + ";age=" + pes[i].age + "<br /><br /><br />";
}
} txt_resoult.Text+=str_jeson;
} //将object转换为jeson字符串
protected void but_obj_str_Click(object sender, EventArgs e)
{
Person pe = new Person();
List<Person> pes = new List<Person>();
pes.Add(pe);
pes.Add(pe); pes.Add(pe); //反序列化实现
string json = JsonHelper.objectToStr(pes);
txt_resoult.Text = json; // 序列化----利用js实现
//JavaScriptSerializer jss = new JavaScriptSerializer();
}
}
}
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,085
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,560
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,409
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,182
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,819
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,902