首先用最基本的JsonTextWriter和JsonTextReader
JsonTextWriter使用成對的方法來輸出Json字串
JsonTextReader使用Read方法來持續讀取Json字串
看得出來在使用上有點拖泥帶水
JsonTextWriter使用成對的方法來輸出Json字串
JsonTextReader使用Read方法來持續讀取Json字串
看得出來在使用上有點拖泥帶水
| 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57 
58 
59 
60 
61 | staticvoidMain(string[] args){    stringjsonString = string.Empty;    using(StringWriter sw = newStringWriter())    {        using(JsonTextWriter writer = newJsonTextWriter(sw))        {            // 開始輸出物件            writer.WriteStartObject();            // 輸出屬性:id            writer.WritePropertyName("id");            writer.WriteValue(1);            // 輸出屬性:name            writer.WritePropertyName("name");            writer.WriteValue("xian");            // 輸出屬性today            writer.WritePropertyName("today");            writer.WriteValue(DateTime.Today);            // 開始輸出陣列            writer.WritePropertyName("arraydata");            writer.WriteStartArray();            writer.WriteValue(1);            writer.WriteValue(2);            writer.WriteValue(3);            // 結束輸出陣列            writer.WriteEndArray();            // 結束串出物件            writer.WriteEndObject();        }        jsonString = sw.ToString();        Console.WriteLine(jsonString);    }    using(StringReader sr = newStringReader(jsonString))    {        using(JsonTextReader reader = newJsonTextReader(sr))        {            while(reader.Read())            {                if(reader.Value != null)                {                    Console.WriteLine("token:{0}, value:{1}", reader.TokenType, reader.Value);                }                else                {                    Console.WriteLine("token:{0}", reader.TokenType);                }            }        }    }    Console.ReadLine();} | 
使用JObject可以簡化一點
| 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 | // 淮備Json資料JObject obj1 = newJObject(){    newJProperty("id", 1),    newJProperty("name", "xian"),    newJProperty("today", DateTime.Today),    newJProperty("arraydata",     newJArray()    {        newJValue(1),        newJValue(2),        newJValue(3),    })};stringjsonString = obj1.ToString();Console.WriteLine(jsonString);// 解析Json格式JObject obj2 = JObject.Parse(jsonString);Console.WriteLine(    "id:{0}, name:{1}, today:{2}, arraydata:{3}",    obj2["id"],    obj2["name"],    obj2["today"],    obj2["arraydata"]);Console.ReadLine(); | 
最常使用還是JsonConvert這一個方式,用法也很直覺
| 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 | // 淮備資料Person p1 = newPerson(){    id = 1,    name = "xian",    today = DateTime.Today};// 序列化物件stringjsonString = JsonConvert.SerializeObject(p1);Console.WriteLine("jsonstring:{0}", jsonString);// 反序列化物件Person p2 = JsonConvert.DeserializeObject<Person>(jsonString);Console.WriteLine("id:{0}, name:{1}, today:{2}", p2.id, p2.name, p2.today);Console.ReadLine(); | 
from : http://blog.developer.idv.tw/2013/06/jsonnet.html



 
沒有留言:
張貼留言