2012-07-16 77 views
0

我是新的JSON序列化和反序列化,反序列化JSON數組到C#列出<T>

class TestClass 
{ 

    public string Name{get;set;} 
    public string Age{get;set;} 
    public string Height{get;set;} 

} 

,並具有以下序列化功能

public void SerializeData() 
{ 

    string jsonData = "{ 
      {"Name" : "Zeus","Age" : "1825","Height" : "900"}, 
      {"Name" : "Hera","Age" : "1805","Height" : "200"} 
    }"; 

    var resultList = new List<TestClass>(); 
    var ser = new JavaScriptSerializer(); 

    resultList= serializer.Deserialize(jsonData , TestClass) 

} 

,但它不」工作!一直拋出「參數例外」

任何幫助請嗎?

+0

請更清楚地說明它拋出的異常。 – Freeman 2012-07-16 12:18:16

+0

你可以檢查你的JSON是否有效http://jsonlint.com/ – Shachi 2013-03-18 10:52:15

回答

3

看起來你的JSON可能不正確。

一個List地圖更緊密地JSON數組 - 像:

[ 
     {"Name" : "Zeus","Age" : "1825","Height" : "900"}, 
     {"Name" : "Hera","Age" : "1805","Height" : "200"} 
] 

如果你想使用外部大括號{}那麼你可以使用JSON像Dictionary<string, TestClass>序列化到/:

{ 
     "Zeus" : {"Name" : "Zeus","Age" : "1825","Height" : "900"}, 
     "Hera" : {"Name" : "Hera","Age" : "1805","Height" : "200"} 
] 
+0

YOSH ..完美的工作..非常感謝.. :) :) :) :) – Zero 2012-07-16 12:30:05

1

這並不代表陣列:

string jsonData = "{ 
      {"Name" : "Zeus","Age" : "1825","Height" : "900"}, 
      {"Name" : "Hera","Age" : "1805","Height" : "200"} 
    }"; 

爲了有一個陣列,你應該有:

string jsonData = "[ 
      {"Name" : "Zeus","Age" : "1825","Height" : "900"}, 
      {"Name" : "Hera","Age" : "1805","Height" : "200"} 
    ]";