最近我在codeplex上发了一个项目SmartObject(基于framework4.5,目前是1.0版本).用法如下:

 
  

   // HowToUse

   using Spider.Data;

   //json example from http://www.json.org/example.html

   string json1 = @"{""widget"":

                                {""debug"": ""on"",

                                  ""window"":

                                             {""title"": ""Sample Konfabulator Widget""",

                                                ""name"": ""main_window"",

                                               ""width"": 500,

                                               ""height"": 500

                                              },

                                  ""p_w_picpath"":

                                             {""src"": ""Images/Sun.png"",

                                              ""name"": ""sun1"",

                                              ""hOffset"": 250,

                                              ""vOffset"": 250,

                                              ""alignment"": ""center""},  

                                   ""text"": {""data"": ""Click Here"",

                                              ""size"": 36.23,

                                              ""style"": ""bold"",

                                              ""name"": ""text1"",

                                              ""hOffset"": 250,

                                              ""vOffset"": 100,

                                              ""alignment"": ""center"",                                                               ""onMouseUp"": ""sun1.opacity = (sun1.opacity / 100) * 90;""}

                                }

                    } ";

string json2 = @"{""menu"":

                           { ""id"": ""file"",

                             ""value"": ""File"",

                             ""popup"":

                                      {""menuitem"": [{""value"": ""New"", "" 2},{""value"": ""Open"", "" 1.2},{""value"": ""Close"", "" 55555}    ]

                                       }

                          }

                }";

   dynamic o1 = SmartObject.Parse(json1);

   dynamic o2 = SmartObject.Parse(json2);                                                                      

   Console.WriteLine(o1.widget.text.size);

   Console.WriteLine(o1.widget.text[1]);                                                                                              Console.WriteLine(o1.widget.text["size"]);

   Console.WriteLine(o1.ToJson());// ToJson return json string

   Console.WriteLine(o2.ToJson());          

   dynamic o3=new SmartObject();          

   o3.A="abc";          

   o3["B"]=2345;            

   Console.WriteLine(o3.IsDefine("C"));

   IDictionary<string, object> dict=o3.AsDictionary();

测试运行:

095847738.jpg

   项目地址:http://smartobject.codeplex.com/