2014-03-03 28 views
0

我遇到以下列格式處理JSON的問題,它沒有指定根元素。C#反序列化未指定根元素的JSON

{ 
    "name":"Test" 
    "age":"15" 
    "gender":"Male" 

} 

我的課程代表如下所示。

public class Person{ 

public string name { get; set; } 
public string age { get; set; } 
public string gender { get; set; } 

} 

,其處理的任何我的網頁的方法是象下面這樣。

[System.Web.Services.WebMethod] 
public boolean deserializePerson(Person person) 
{ 
    //implementation code 
} 

此Web服務方法失敗反序列化JSON,因爲預計在與指定的根元素(類名在這種情況下)以下格式的JSON。

{ 
    Person:{ 
     "name":"Test" 
     "age":"15" 
     "gender":"Male" 
    } 
} 

有什麼辦法可以反序列化JSON而不需要指定根元素Person嗎? 也許通過註釋?

謝謝。

+0

你將如何傳遞的參數有例如,如果你的方法是'DoSomething(人員,公司公司)',那麼就是平坦的json –

回答

0

,如果你有兩側該類它會很好地工作

public class Person 
{ 

    public string name { get; set; } 
    public string age { get; set; } 
    public string gender { get; set; } 

    public string getClassSerialized() 
    { 
     return new JavaScriptSerializer().Serialize(this); 
    } 

    public Person getClassDeserialized(string sSerializedClass) 
    { 
     return new JavaScriptSerializer().Deserialize<Person>(sSerializedClass); 
    } 
} 

拿到類回你可能會得到這樣的:

var myPerson = new Person().getClassDeserialized(sSerializedClass);