2012-07-11 74 views
0

我忙於爲Windows Phone 7開發應用程序,該應用程序基本上調用一個Web服務,然後返回json。我使用newton.json library然後將該Json對象轉換爲C#對象。例如,如果JSON的是這樣的:從返回的Json對象中篩選出字符

 {  
      "FirstName" : "", 
      "LastName" : "", 
      "Gender" : "" 
     } 

類會得到創建的樣子:

class person{ 
    public string FirstName {get;set;} 
    public string LastName {get;set;} 
    public string Gender {get;set;} 
} 

因此,大家可以看到在生成的類中的變量相匹配的JSON的變量名究竟。例如名字 - >名字。

但現在我已經到了一個階段,返回的json有一個變量名爲'ID#',如果你是一個快速的思考者,你會看到一個C#變量然後會去生成將被命名爲'ID#',但顯然在C#中,您不能在變量名中使用哈希符號。

所以我想知道如何克服這個障礙?我正在考慮過濾返回的JSON中的#符號,但我究竟該如何去做這件事,而且即使是正確的做法呢?

在此先感謝!

回答

1

嘗試支持寫:

class person{ 
    [JsonProperty("ID#")] 
    public string ID { get; set;} 
    public string FirstName {get;set;} 
    public string LastName {get;set;} 
    public string Gender {get;set;} 
} 
+0

只想確定'JsonProperty'來自哪個名稱空間? – Tiwaz89 2012-07-11 10:32:13

+0

@DeanGrobler Newtonsoft.Json.Serialization.JsonProperty – 2012-07-11 10:45:01

1

使用DateMember命名空間System.Runtime.Serialization的屬性,你的價值"ID#"將被轉換爲ID,它也被Newtonsoft

[DateMember(Name = "ID#")] 
public string ID { get; set; } 
+0

感謝您的答覆阿西夫。我得到一個錯誤,雖然說它沒有發現DateMember作爲類型或命名空間(即使與命名空間導入)..任何想法? – Tiwaz89 2012-07-11 10:22:05

+0

愚蠢的我,它是NewtonSoft.Json;我的不好,我目前的文件沒有包含那個導入。謝謝! – Tiwaz89 2012-07-11 10:44:32