使用C#从结果中解析JSON数据

时间:2017-06-26 06:10:49

标签: c# json parsing

当我尝试从响应中获取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结果的另一种方法,不确定。

这是我想要的Json结果数据。 enter image description here

我知道api调用正在运行,因为我可以将Json数据写入浏览器控制台。 return Content(response);然后用jquery写。

2 个答案:

答案 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);
}