当我尝试从响应中获取Json数据时,它不起作用。 我是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结果的另一种方法,不确定。
我知道api调用正在运行,因为我可以将Json数据写入浏览器控制台。 return Content(response);
然后用jquery写。
答案 0 :(得分:3)
问题已经得到解答,但我认为这是一种繁琐的方式。
将respnse转换为对象只是为了将其返回到相同的状态(JSON)没有意义。
你需要按照以下方式回复:
[HttpPost]
public ActionResult ProcessPreferences(string categoryTag, string userEmailAddr)
{
...
var response = acs.SendRequest("GET", getParameters);
return Content(response, "application/json");
}
答案 1 :(得分:2)
而不是ActionResult去JsonResult。 请尝试以下代码:
public JsonResult ActionName()
{
your code goes here ....
return Json(outputobj);
}