首页新闻找找看学习计划

C# json的序列化问题

0
悬赏园豆:40 [待解决问题]

哈佛大学

{
    "录取情况(新生)": {
        "全日制学生": {
            "男生": "836",
            "女生": "827",
            "合计": "1663"
        },
        "在职学生": {
            "男生": "836",
            "女生": "827",
            "合计": "1663"
        }
    },
    "所有本科生": {
        "全日制学生": {
            "男生": "3317",
            "女生": "3316",
            "合计": "6633"
        },
        "在职学生": {
            "男生": "1",
            "女生": "7",
            "合计": "8"
        },
        "研究生": {
            "男生": "7303",
            "女生": "6671",
            "合计": "13974"
        }
    },
        "宗教种族背景本科生": {
            "美洲印第安人/阿拉斯加土著人": "少于1%",
            "亚洲人": "15%",
            "黑人": "6%",
            "西班牙人": "8%",
            "多种族": "3%",
            "夏威夷土人/太平洋岛国居民": "少于1%",
            "白人": "43%",
            "种族不明": "1%"
        },
        "外州学生": {
            "外州学生比例": "74%",
            "代表的州和地区数量数量": "54"
        },
        "国际学生": {
            "国际学生比例": "10%",
            "代表的国家数量": "110"
        },
        "学生年龄": {
            "年龄超过25岁的学生(含25岁)比例": "1%"
        }
    }
}

 

类似于这样如何进行写成class的形式,然后进行序列化,嵌套的这种感觉好晕!!

邱育华的主页 邱育华 | 初学一级 | 园豆:10
提问于:2013-06-22 22:07
< >
分享
所有回答(4)
0

逐层嵌套

某个属性里面可以是一个数组 数组里面可以是多个属性组

如此嵌套匹配

火地晋 | 园豆:106 (初学一级) | 2013-06-22 23:11
0
class Json
{
    College 哈弗大学{get;set;}
}
class College
{
    NewStudent College{get;set;}
    AllUndergraduate 所有本科生{get;set;}
    ...//这里还需要将其他属性追加出来,其实就的嵌套类的写法。
}
class NewStudent
{
    Student 全日制学生{get;set;}
    Student 在职学生{get;set;}
}
class AllUndergraduate
{
    Student 全日制学生{get;set;}
    Student 在职学生{get;set;}
    Student 研究生{get;set;}
}
class Student
{
    int 男生{get;set;}
    int 女生{get;set;}
    int 合计{get;set;}
}

不建议,用类来表示这样的json,这样的json,数据格式不太统一。

幻天芒 | 园豆:36522 (高人七级) | 2013-06-23 03:18

可是这样要对它进行赋值操作,然后进行序列化怎么办呢

支持(0) 反对(0) 邱育华 | 园豆:10 (初学一级) | 2013-06-23 09:58

@叶落无声1: 赋值的时候,就实例化一个Json对象,var json=new Json();

json.哈弗大学=new College();这样一层一层的赋值,因为你这样的json,嵌套有点多,所以相对来说,赋值有点麻烦。

支持(0) 反对(0) 幻天芒 | 园豆:36522 (高人七级) | 2013-06-23 12:25
0

全部定义成Dictionary<string,int> 

今晚打灰机 | 园豆:202 (菜鸟二级) | 2013-06-24 08:55

不是很清楚

支持(0) 反对(0) 邱育华 | 园豆:10 (初学一级) | 2013-06-27 10:52
0
    class 哈佛大学
    {
        public NewStuent Newstuent{ get; set; }
public object body { get; set; } public class NewStuent {
....自定义属性和字段 如果有n嵌套 也类似的写法 里面继续写class public clsss xx
{}
} } }

调用:类似下面的格式 

        public static string Login(string userName, string password)
        {
            Command command = new Command();
            command.header = new Command.Header();
            command.header.cmd = "1000";
            Command.Login login = new Command.Login();
            login.user = userName;
            login.pass = password;
            command.body = login;
            string json = JsonConvert.SerializeObject(command);
            return json;
        }

最后下面个第3方的dll Newtonsoft.Json.dll

s_p | 园豆:269 (菜鸟二级) | 2013-06-26 13:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册