全网最简单的C# json数据解析 无敌菜鸟教程 十分钟搞定json数据解析

全网最简单的C# json数据解析

无敌菜鸟教程

十分钟搞定json数据解析


废话先说一点,算了。直接进入正题吧。
用例子说话:


JSON数据:

string json:
"
{
    "Result": "A01",
    "List": [
        {
            "name": "王艳",
            "sex": "F",
            "idno": "34*****20",
            "addr": "安徽省",
            "telephone": "",
            "Age": 27,
            "DeptName": "姚江中心"
        },
        {
            "name": "王艳",
            "sex": "F",
            "idno": "34*****20",
            "addr": "安徽省",
            "telephone": "",
            "Age": 27,
            "DeptName": "水湾站"
        }
    ]
}
";

(引号中的所有引号都要加一个反斜杠\)

为了看起来没有那么乱,我上面就没有写出来。

当然,这是最麻烦的,最简单的就是这东西原来就在哪里生成然后在那里直接赋值。


最开始先引入dll

using Newtonsoft;

using Newtonsoft.Json;

1.复制数据→ http://json2csharp.chahuo.com/ →转换json格式为C#类

http://json2csharp.chahuo.com/

此网站超级无敌好用

public class List {
    public string name  { get; set; }
    public string sex  { get; set; }
    public string idno  { get; set; }
    public string addr  { get; set; }
    public string telephone  { get; set; }
    public string Age  { get; set; }
    public string DeptName  { get; set; }
}

public class RootObject {
    public string Result  { get; set; }
    public List List { get; set; }
}

2.生成文档粘贴至C#中

3.JSON去除多余部分(直接用replace)

这个步骤可写可不写,因为我的数据就是多了这一部分所以我把把这个字串进行删减处理

 json = json.Replace("{\"Result\":\"A01\",\"List\":", "");
 json = json.Replace("\"\"}]}", "\"\"}]"); 

4.json进行解析

List<List> MemberInfoList = JsonConvert.DeserializeObject<List<List>>(json);

5.提取数据

    foreach (List MemberInfo in MemberInfoList)
                {
                    string name1 = MemberInfo.name;
                    string addr1 = MemberInfo.addr;
                    string phone1 = MemberInfo.telephone;
                    string sex1 = MemberInfo.sex;
                    string age1 = MemberInfo.Age;
                    string deptname1 = MemberInfo.DeptName;
                };

主要步骤都差不多写完了

下面就顺带说一下怎么讲数据添加到datagridview中

因为这个昨天也困扰了我一会,毕竟菜鸟

1.自己建一个gridview 数据来源就先别写了。

此方案不用table添加数据

     //将以上变量合成一个阵列
     string[] row = { name1, sex1, age1, Form1.form1_ID, phone1, addr1, deptname1 };
     //给dataGridView1控件添加数据
     dataGridView1.Rows.Add(row);

上面的代码需要添加到再上面那个foreach回圈里面。

因为例子的json数据有两笔。

当然一笔的json也可以写啦~

当然多笔的json也可以写啦~

2.顺带说一下怎么自动调整gridview的行高和列宽

//自动调整行高和列宽
dataGridView1.AutoResizeRows(DataGridViewAutoSizeRowsMode.AllCells);
dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);

是的,你看完了,就是这样了。

没有更多的东西了

其实还有东西的,

http://www.cnblogs.com/dhx96/p/7381124.html

http://www.cnblogs.com/dhx96/p/7381124.html

http://www.cnblogs.com/dhx96/p/7381124.html

你可能感兴趣的:(C#)