using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
//http://msdn.microsoft.com/zh-cn/library/system.runtime.serialization.datacontractattribute.aspx
//using System.Web.Script.Serialization;
using System.Text;
using System.IO;
using System.Runtime;
using System.Runtime.Serialization;// 添加 System.Runtime.Serialization
using System.Runtime.Serialization.Json;//添加 System.ServiceModel和System.ServiceModel.Web的引用
using System.Xml;
using System.Runtime.Serialization.Formatters; namespace JsonNetDemo
{
public partial class WebForm1 : System.Web.UI.Page
{
string dataString = string.Empty; /// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{ }
/// <summary>
/// 对象转化为JSON字符串
/// http://www.cnblogs.com/coderzh/archive/2008/11/25/1340862.html
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Button1_Click(object sender, EventArgs e)
{
var config = new JsonConfig()
{
encoding = "UTF-8",
plugins = new string[] { "Java", "C++", "C#" },
indent = new Indent() { length = 4, use_space = false }
}; var serializer = new DataContractJsonSerializer(typeof(JsonConfig));
var stream = new MemoryStream();
serializer.WriteObject(stream, config); byte[] dataBytes = new byte[stream.Length]; stream.Position = 0; stream.Read(dataBytes, 0, (int)stream.Length); dataString = Encoding.UTF8.GetString(dataBytes); Response.Write("JSON string is:");
Response.Write(dataString);
}
/// <summary>
/// JSON字符串转对象
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Button2_Click(object sender, EventArgs e)
{
var config = new JsonConfig()
{
encoding = "UTF-8",
plugins = new string[] { "Java", "C++", "C#" },
indent = new Indent() { length = 4, use_space = false }
}; var serializer = new DataContractJsonSerializer(typeof(JsonConfig));
var stream = new MemoryStream();
serializer.WriteObject(stream, config); byte[] dataBytes = new byte[stream.Length]; stream.Position = 0; stream.Read(dataBytes, 0, (int)stream.Length); dataString = Encoding.UTF8.GetString(dataBytes); //var serializer = new DataContractJsonSerializer(typeof(JsonConfig));
var mStream = new MemoryStream(Encoding.Default.GetBytes(dataString));
JsonConfig readConfig = (JsonConfig)serializer.ReadObject(mStream); Response.Write(string.Format("Encoding is: {0}", readConfig.encoding));
foreach (string plugin in readConfig.plugins)
{
Response.Write(string.Format("plugins is: {0}", plugin));
}
Response.Write(string.Format("indent.length is: {0}", readConfig.indent.length));
Response.Write(string.Format("indent.use_space is: {0}", readConfig.indent.use_space));
}
} [DataContract(Name = "Customer", Namespace = "JsonNetDemo")]
class JsonConfig
{
[DataMember(Order = 0)]
public string encoding { get; set; }
[DataMember(Order = 1)]
public string[] plugins { get; set; }
[DataMember(Order = 2)]
public Indent indent { get; set; }
} [DataContract(Name = "Customer", Namespace = "JsonNetDemo")]
class Indent
{
[DataMember(Order = 0)]
public int length { get; set; }
[DataMember(Order = 1)]
public bool use_space { get; set; }
}
}

csharp:.net 3.5 using System.Runtime.Serialization.Json read json的更多相关文章

  1. C# Serialization performance in System.Runtime.Serialization.Formatters.Binary.BinaryFormatter,Newtonsoft.Json.JsonConvert and System.Text.Json.JsonSerializer.Serialize

    In .net core 3.0 using System;using System.Collections.Generic;using System.Collections;using System ...

  2. 找不到方法:“Boolean System.Runtime.Serialization.DataContractAttribute.get_IsReference()”的解决办法

    找不到方法:“Boolean System.Runtime.Serialization.DataContractAttribute.get_IsReference()”.的解决办法站点发布后部署到了两 ...

  3. 重写成员“log4net.Util.ReadOnlyPropertiesDictionary.GetObjectData(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)”时违反了继承安全性规则

    在.NET 4.0下使用最新版本的log4Net 1.2.10,会遇到下面这样的错误: 重写成员“log4net.Util.ReadOnlyPropertiesDictionary.GetObject ...

  4. 找不到System.Runtime.Serialization.Json的解决方案

    System.ServiceModel System.ServiceModel.Web System.Runtime.Serialization 三者均要添加引用

  5. 引用System.Runtime.Serialization.Json

    vs2012下,重新添加一次System.Runtime.Serialization的引用

  6. 基础命名空间:序列化_自定义序列化 System.Runtime.Serialization

    (  (From Msdn) 自定义序列化是控制类型的序列化和反序列化的过程,通过控制序列化,可以确保序列化兼容性.换而言之,在不中断类型核心功能的情况下,可在类型的不同版本之间序列化和反序列化. 重 ...

  7. 基础命名空间:序列化 System.Runtime.Serialization

    对象通常都有状态(state),从一个对象中抽取这种状态,不论是将它存储于某地,还是通过网络传送,这种抽取动作称为“将一个对象序列化”,而反向处理过程,从一个被序列化的状态重建一个对象即为反序列化. ...

  8. System.Runtime.Serialization.SerializationException”类型的未经处理的异常在 System.Runtime.Serialization.dll 中发生

    异常信息: “System.Runtime.Serialization.SerializationException”类型的未经处理的异常在 System.Runtime.Serialization. ...

  9. System.Runtime.Serialization.cs

    ylbtech-System.Runtime.Serialization.cs 允许对象控制其自己的序列化和反序列化过程. 1.返回顶部 1. #region 程序集 mscorlib, Versio ...

随机推荐

  1. P1444 [USACO1.3]虫洞wormhole

    luogu P1444 [USACO1.3]虫洞wormhole 首先感谢ghj的讲解 题目描述 农夫约翰爱好在周末进行高能物理实验的结果却适得其反,导致N个虫洞在农场上(2<=N<=12 ...

  2. jquery offset()和position()的区别

    <script src="jquery/jquery-3.3.1.min.js"></script> <script type="text/ ...

  3. HTML中title前面小图标和网站收藏现实的图标

    网站上的logo实际上是一个“favicon.ico”图片.实现步骤:第一步:制作favicon.ico,大小为16*16毫米:第二步:将“favicon.ico”放到项目的根路径下. 第三步:在所有 ...

  4. 送给张思漫,李志媛和王颖的C语言经典例题

    1.打印乘法口诀表 #include<stdio.h> int main() { int i, j; ; i <= ; i++){ ; j <= i; j++) { print ...

  5. ptyhon技能树及其学习资源

    GUI编程 tkinter Github项目 Tkinter by example effbot 文档 tkinter的一个designer,可以像在qtdesign那样创建UI文件 pyqt5 py ...

  6. DP Intro - poj 1947 Rebuilding Roads

    算法: dp[i][j]表示以i为根的子树要变成有j个节点的状态需要减掉的边数. 考虑状态转移的时候不考虑i的父亲节点,就当不存在.最后统计最少减去边数的 时候+1. 考虑一个节点时,有两种选择,要么 ...

  7. linux(ubuntu-16.1) 下安装 odoo10 新版

    1.虚拟机(VMware)中安装 ubuntu-16.1(网络适配器选择桥接模式). 安装成功后,运行 ubuntu 提示 "CPU已被客户机操作系统禁用" 时,需要修改配置文件解 ...

  8. 如何获取select中的value、text、index相关值 && 如何获取单选框中radio值 && 触发事件 && radio 默认选中

    如何获取select中的value.text.index相关值 select还是比较常用的一个标签,如何获取其中的内容呢? 如下所示: <select id="select" ...

  9. oracle 表空间tablespace

    一.Oracle 表空间的组成 Everoone knows Oracle数据库真正存放数据的是数据文件,Oracle表空间是逻辑上的概念,他在物理上是并不存在的,把多个DataFile合并到一起就是 ...

  10. centos 7编译安装nginx

    一.安装nginx时必须先安装相应的编译工具yum -y install gcc gcc-c++ autoconf automakeyum -y install zlib zlib-devel ope ...