如何实现序列化为json

因为需要观察对象的数据,所以寻找能自动描述对象中字段名和其值的描述类,咨询了不少人,都推荐使用json,但是json使用起来有一点额外的操作.

需要在文件中引用

using System.Web.Script.Serialization;

可是添加了发现提示报错,找不到空间名字,原来还需要在项目引用中添加该引用:

我使用的是VS2010,在.NET引用中找不到它,查阅资料,还要到C盘中去找到并添加.我找到的地址如下:

从添加引用,浏览中添加后,就可以正常使用了.

        public class test //自定义的数据类
        {
            //public  Dictionary<int, int> dary = new Dictionary<int, int>();
            public List<List<int>> sary = new List<List<int>>();
            public List<int> nary = new List<int>();
            public xxx mx = new xxx();
            public wori wr = new wori();
            public Tuple<int, int, int, string> mt = new Tuple<int, int, int, string>(1, 1, 1, "aa"); 

            public test()
            {
                int[] nnary = new int[5] { 1, 2, 3, 45, 7 };

                nary = new List<int>(nnary);
                sary = new List<List<int>>();
                sary.Add(ZCL.Tbas.MEarray.CreatIntRand(10, 1, 1000));
                sary.Add(ZCL.Tbas.MEarray.CreatIntRand(10, 1, 1000));
                sary.Add(ZCL.Tbas.MEarray.CreatIntRand(10, 1, 1000));
                sary.Add(ZCL.Tbas.MEarray.CreatIntRand(10, 1, 1000));
                sary.Add(ZCL.Tbas.MEarray.CreatIntRand(10, 1, 1000));
                sary.Add(ZCL.Tbas.MEarray.CreatIntRand(10, 1, 1000));

            }
        }
            test md2 = new test();  //通过以下代码实现
            JavaScriptSerializer serializer = new JavaScriptSerializer();
            StringBuilder sb = new StringBuilder();
            serializer.Serialize(md2, sb);
            ME.MsgShow(sb.ToString());

最后显示结果为:

{"sary":[[950,652,375,867,923,494,271,923,897,522],[624,631,8,505,671,508,888,827,19,983],[478,623,576,323,457,735,776,670,528,497],[237,813,868,350,901,512,303,135,374,808],[656,670,553,478,83,837,759,501,409,409],[348,473,931,859,751,328,76,53,411,189]],"nary":[1,2,3,45,7],"mx":{"ma":20,"mb":100,"sa":"abc","sb":"33333","sc":"ewr"},"wr":{"md":0,"ma":0,"sa":null,"sb":null,"sc":null},"mt":{"Item1":1,"Item2":1,"Item3":1,"Item4":"aa"}}

注意: JSON是无法直接序列化Dictionary,需要将其转化为List.

时间: 2024-11-05 02:43:10

如何实现序列化为json的相关文章

JavaScriptSerializer类 对象序列化为JSON,JSON反序列化为对象 。

JavaScriptSerializer 类由异步通信层内部使用,用于序列化和反序列化在浏览器和 Web 服务器之间传递的数据.说白了就是能够直接将一个C#对象传送到前台页面成为javascript对象.要添加System.Web.Extensions.dll的引用.该类位于System.Web.Script.Serialization命名空间下. 一.属性 MaxJsonLength 获取或设置 JavaScriptSerializer 类接受的 JSON 字符串的最大长度. Recursio

Jquery 将表单序列化为Json对象

使用下面代码时注意不要忘记引入jquery文件,以下代码可以复制到html文件中执行可看到效果,非常方便好用.附代码: <!DOCTYPE html> <html> <head> <title></title> <script src="jquery-2.0.3.min.js"> </script> </head> <body> <form id="myForm&

form表单序列化为json格式数据

在web开发过程中,经常遇到将form序列化不能格式的字符串提交到后台,下面就介绍怎样将form表单序列化为json字符串. 首先,是扩展的jquery序列化插件,依赖jquery.经测试,这段代码可以放在$(funciton(){})中,也可以放在外面,都可以实现效果. $.fn.serializeObject = function() { var o = {}; var a = this.serializeArray(); $.each(a, function() { if (o[this.

JavaScriptSerializer类 对象序列化为JSON,JSON反序列化为对象

JavaScriptSerializer 类由异步通信层内部使用,用于序列化和反序列化在浏览器和 Web 服务器之间传递的数据.说白了就是能够直接将一个C#对象传送到前台页面成为javascript对象.要添加System.Web.Extensions.dll的引用.该类位于System.Web.Script.Serialization命名空间下. 一.属性 MaxJsonLength 获取或设置 JavaScriptSerializer 类接受的 JSON 字符串的最大长度. Recursio

ArcGIS Wpf MarkerSymbol 图形符号无法序列化为 JSON

[问题贴,尚不知如何解决] 在GraphicsLayer中添加一个点,使用自定义模板渲染该点,在Vs2012设计界面可以看到,但运行时出现异常 代码如下: 1 <esri:Graphic x:Name="MyGrapic" > 2 <esri:Graphic.Geometry> 3 <esri:MapPoint X="120.198704" Y="35.957860" > 4 <esri:MapPoint

Json数据序列化对象,及对象序列化为Json格式

public class JsonHelper { /// <summary> /// 生成Json格式 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="obj"></param> /// <returns></returns> public static string GetJso

将long数字序列化为json时,转换为字符串

由于javascript中所有数字都是64位的浮点数,所以整数只能精确的表示53bit长的数字. 在从server得到的json数据中,有ID是长整数类型,在客户端根据此ID生成的link也是不准确的. 办法1是后端ViewModel中ID都改为string类型,但是这种方式会需要在后台进行大量的转换,不是很方便. 方法2:在mvc的action进行json输出的时候,将long类型的属性直接输出为字符串. 实现方法参考: http://stackoverflow.com/questions/1

jQuery form表单序列化为JSON对象!

/* 来源于博客园http://www.cnblogs.com/nixil/archive/2010/12/08/1900745.html */ function paramString2obj(serializedParams) { var obj = {}; function evalThem(str) { var attributeName = str.split("=")[0]; var attributeValue = str.split("=")[1];

通过fastjson将一个对象序列化为json,同时加入指定的序列化逻辑

主函数: import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.serializer.ValueFilter; import com.google.common.base.Preconditions; public class xiaomi { public static void main(String[] args) { A a = new A(); String json =ok.object2Json(a); Syst