2017-06-26 114 views
1

當我嘗試從響應中獲取Json數據時,它不起作用。 我是Json的新手,所以我不確定如何去解決這個問題。從C結果解析JSON數據#

這裏是我有個大氣壓代碼:

//process ajax and make API call to active campaign 
    [HttpPost] 
    public ActionResult ProcessPreferences(string categoryTag, string userEmailAddr) 
    { 
     string applyToTag = categoryTag; 
     string emailAddr = userEmailAddr; 

     /* 
     * Active Campign API Integration 
     */ 
     // By default, this sample code is designed to get the result from your ActiveCampaign installation and print out the result 
     var acs = new Acs("api_key_removed", "api_url_removed"); 

     Dictionary<string, string> getParameters = new Dictionary<string, string>(); 
     getParameters.Add("api_action", "contact_view_email"); 
     getParameters.Add("api_output", "json"); 
     getParameters.Add("email", emailAddr); 

     var response = acs.SendRequest("GET", getParameters); 
     var obj = System.Web.Helpers.Json.Decode(response); 

     return Content(obj.tags); 
    } 
} 

一切我發現在谷歌不工作。 我試過,但它不工作:

var obj = System.Web.Helpers.Json.Decode(response); 
return Content(obj.tags); 

我與積極開展活動工作,所以可能會得到JSON結果,不知道不同的方法。

這是我從Json結果中獲得的數據。 enter image description here

我知道api調用正在工作,因爲我可以將Json數據寫入瀏覽器控制檯。 return Content(response);然後用jquery編寫。

+0

爲什麼不'回內容(迴應, 「應用/ JSON」);' – dovid

+0

@lomed不知道,我是新來使用JSON工作。乾杯 –

回答

3

的問題已經回答了,但我認爲一個麻煩的方式。

將respnse轉換爲僅返回相同狀態(JSON)的對象沒有任何意義。

你需要返回效應初探,因爲它:

[HttpPost] 
public ActionResult ProcessPreferences(string categoryTag, string userEmailAddr) 
{ 
    ... 

    var response = acs.SendRequest("GET", getParameters); 

    return Content(response, "application/json"); 
} 
+0

這對我的工作謝謝你的幫助:) –

2

而不是ActionResult去JsonResult。 試試下面的代碼:

public JsonResult ActionName() 
{ 
    your code goes here .... 
    return Json(outputobj); 
} 
+0

感謝您的幫助:)我怎麼會得到的數據,即'返回內容(obj.tags [「0」]);'目前我得到紅色波浪線在標籤 –

+1

如果沒有定義C# ,而是返回'obj'並迭代前端。 –

+1

哦,我看到所以我應該這樣做'.done(函數(msg){(obj.tags中的){ //代碼 } }}'在前端。非常感謝您的幫助:) –