2013-10-31 62 views
0

我打電話給一個外部Web服務(Facebook API),它在我的一個頁面後面的代碼中返回一個JSON對象(見下文)。我試圖找出最有效的方法來存儲每個字段從這個JSON對象在我的代碼隱藏(實際上試圖得到一個領域,金額領域)。 JSON對象如下:在ASP.NET 3.5中存儲JSON對象的字段

{"algorithm":"HMAC-SHA256","amount":"5.00","currency":"USD", 
"issued_at":81723498712,"payment_id":71283749753874,"quantity":"5", 
"status":"completed"} 

我只是想抓住每一個變量(或一個我需要的),它存儲在一個變量(字符串,整數等),然後用它不管是什麼,我需要在我的代碼隱藏。另外請注意,我正在使用ASP.NET 3.5/C#。

任何意見將是有益的。在此先感謝您的幫助!

回答

0

我想通了,代碼如下:

var result = "Code for Call to Facebook Goes Here - Returns JSON Object"; 
string json = result.ToString(); 
var serializer = new JavaScriptSerializer(); 
Dictionary<string, string> values = serializer.Deserialize<Dictionary<string, string>>(json); 
string amount = (string)values["amount"]; 
0
class Item{ 
     public string algorithm {get;set;} 
     public float amount {get;set;} 
     public string currency {get;set;} 
     public Date issued_at {get;set;} 
     public string payment_id {get;set;} 
     public int quantity {get; set;} 
     public string status {get;set;} 

    } 

    Item item = JSON.Deserialaize(JSON_OBJECT) // check for specific syntax 
    Item[] item = JSON.Deserialize(JSON_OBJECT) // even can get array of json objects 

現在,您可以永遠這樣,你想要什麼使用這些JSON對象。

1

您可以使用Newtonsoft的Json.NET庫。使用非常簡單。你可以在你的MSVS用的NuGet包安裝,或從網站http://json.codeplex.com/

然後,只需下載您需要創建類是這樣的:

class FacebookResponse 
{ 
    public string Algorithm {get;set;} 
    public float Amount {get;set;} 
    public string Currency {get;set;} 
    public DateTime IssuedAt {get;set;} 
    public string PaymentId {get;set;} 
    public int Quantity {get; set;} 
    public string Status {get;set;} 
} 

之後,當你從API收到您的JsonString,您可以使用下面的方法:

FacebookResponse response = JsonConvert.DeserializeObject<FacebookResponse>(JsonString); 

如果您需要序列化類,使用JSON,你可以使用:

var facebookResponseItem = new FacebookResponse(); 
//some initial code here 
var sendFacebookResponseItem = JsonConvert.SerializeObject(facebookResponseItem);