为什么c#类生成json格式的次序是倒的?
来源:互联网 发布:画线路板软件 编辑:程序博客网 时间:2024/05/17 09:23
最近碰到一个问题:
在C#里生成json格式字符串的时候,发现生成出来的顺序是颠倒的,如下图中的类:
public class Person { public string name{get;set;}//姓名 public int age{get;set;} //年龄 public bool sex_is_male{get;set;} //性别 public struct Partner //伙伴 { public string partner_name{get;set;} //伙伴姓名 public int partner_age{get;set;} //伙伴年龄 public bool partner_sex_is_male{get;set;} //伙伴性别 } public Partner partner; public string[] achievement; //成就 }//设置一个Person类 Person p = new Person(); p.name = "Tsybius"; p.age = 23; p.sex_is_male = true; p.partner.partner_name = "Galatea"; p.partner.partner_age = 21; p.partner.partner_sex_is_male = false; p.achievement = new string[] { "ach1", "ach2", "ach3" };//直接输出 Console.WriteLine("Formatting.None:"); string json1 = JsonConvert.SerializeObject(p); Console.WriteLine(json1 + "\n");
生成的结果如下:
{"partner":{"partner_name":"Galatea","partner_age":21,"partner_sex_is_male":false},"achievement":["ach1","ach2","ach3"],"name":"Tsybius","age":23,"sex_is_male":true}
百思不得其解,百度以后,发现一篇文章里,类的声明与我不同,是如下结构:
public class Person { public string name; //姓名 public int age; //年龄 public bool sex_is_male ; //性别 public struct Partner //伙伴 { public string partner_name;//伙伴姓名 public int partner_age ; //伙伴年龄 public bool partner_sex_is_male; //伙伴性别 } public Partner partner; public string[] achievement; //成就 }
赶紧试了一下,问题解决了!如下输出:
{“name”:”Tsybius”,”age”:23,”sex_is_male”:true,”partner”:{“partner_name”:”Galatea”,”partner_age”:21,”partner_sex_is_male”:false},”achievement”:[“ach1”,”ach2”,”ach3”]}
原因也说不清楚,不知道为什么会把封装setget的属性放到最后才生成?谁能解释一下呢?
0 0
- 为什么c#类生成json格式的次序是倒的?
- 一个生成json格式的类
- delphi生成JSON格式字符串的一个简单的类
- 将字符串修改成数组,这是生成的字符型坐标,转换成json格式
- Flex嵌套容器的生成次序
- Java Bean 生成 Json格式的String
- EasyUI treegrid 生成json格式的方法
- C# 将类的内容写成JSON格式的字符串
- C# JSON格式的字符串读取到类中
- 巧用JSON.stringify()生成漂亮格式的JSON字符串
- 巧用JSON.stringify()生成漂亮格式的JSON字符串
- 类成员的构造次序
- 派生类初始化的次序
- C# 生成各种格式各种大小的图片类
- C#生成复杂格式的WORD
- C#中GUID的生成以及格式
- JSON C# Class Generator ---由json字符串生成C#实体类的工具
- C#生成JSON数据格式的函数
- OnTouchListener与OnGestureListener的区别
- iOS 开发 block 篇 基础介绍
- 关于虚拟机中的unbuntu建立共享文件夹并自动挂载
- 深入看看 __proto__到底是什么
- 引用和指针
- 为什么c#类生成json格式的次序是倒的?
- android访问本地电脑上的网站
- AutoResponse - mac版之Fiddler
- Docker 概念快递
- 事件代理中冒泡带来的问题----触发根元素自己的事件
- css3的一些常用属性
- 使用百度地图的地理编码功能时报错
- windows matebook开发TODO
- reference to "transform" is ambiguous