5月 06

以前要转json一般都是自己手工去写,再不济就是用Newtonsoft.Json.dll这个第三方的类库

今天突然发现.NET4.0里面自带了,这可真是一个伟大的发现

准备工作

需要引用

System.Web.Extensions.dll 这个类库

命名空间:

System.Web.Script.Serialization

数据结构

public class Team
{
    public string Name { get; set; }
    public List<User> Users { get; set; }
}
public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
}

Class –> JSON

            JavaScriptSerializer js = new JavaScriptSerializer();
            Team team = new Team()
            {
                Name = "梦之队",
                Users = new List<User>() { 
                     new User() { Id = 1, Name = "XXX" },
                      new User() { Id = 2, Name = "YYY" },
                       new User() { Id = 3, Name = "ZZZ" },
                    }
            };
            string json = js.Serialize(team);
            Console.WriteLine(json);

输出结果

{"Name":"梦之队","Users":[{"Id":1,"Name":"XXX"},{"Id":2,"Name":"YYY"},{"Id":3,"N
ame":"ZZZ"}]}

Json –> Class

            string json = "{\"Name\":\"梦之队\",\"Users\":[{\"Id\":1,\"Name\":\"XXX\"},{\"Id\":2,\"Name\":\"YYY\"},{\"Id\":3,\"Name\":\"ZZZ\"}]}";
            JavaScriptSerializer js = new JavaScriptSerializer();
            Team team = js.Deserialize<Team>(json);

测试结果略

2014.9.18更新

JSON.NET(Newtonsoft.Json)

官方地址:http://www.newtonsoft.com/json

序列化

            Team team = new Team() 
            { 
                Name = "梦之队", 
                Users = new List<User>() {  
                     new User() { Id = 1, Name = "XXX" }, 
                      new User() { Id = 2, Name = "YYY" }, 
                       new User() { Id = 3, Name = "ZZZ" }, 
                    } 
            }; 
            string json = JsonConvert.SerializeObject(team);

反序列化

            var jsonTeam= JsonConvert.DeserializeObject<Team>(json);

另外,JSON.NET还有一种比较好用的方式,按照索引器访问

            string json = "{\"Name\":\"梦之队\",\"Users\":[{\"Id\":1,\"Name\":\"XXX\"},{\"Id\":2,\"Name\":\"YYY\"},{\"Id\":3,\"Name\":\"ZZZ\"}]}";
            JObject jobject = JsonConvert.DeserializeObject(json) as JObject;
            Console.WriteLine(jobject["Name"]); //使用索引器访问 
            Console.WriteLine(jobject["Users"][0]["Name"]);

效率就不做比较了,应该JSON.NET完胜

written by ocean

5月 05

获取库中有哪些表
SHOW TABLES

获取表中有哪些字段
SHOW FULL FIELDS FROM BILL_BookDinner;

written by ocean