我想直接从服务层中的外部 API 捕获 JSON,将其返回到 MVC 4 ApiController,然后通过该 ApiController 输出 JSON。我基本上是在围绕另一个 API 服务编写一个包装器,因为必须同时发生一些其他操作(身份验证等)。问题是 JSON 被转换为字符串并在我的 C# 代码中作为字符串传递。这只是将转义字符添加到 JSON。无论如何我可以在我的 C# 代码中传递 JSON 对象吗?我的实施细节如下。
在服务层中,我正在使用通过以下方法提供 JSON 的 API。
return new WebClient().DownloadString(url);
不幸的是,这会返回一个字符串。由于这个 API 已经向我返回 JSON,这是有问题的,因为很多转义字符被添加到字符串中。
JSON 应该看起来像这样
[{"Citation":{"Attachments":[{"AttachedPersonIds":null,..."Type":"Record"}]
但它现在看起来像这样
"[{\"Citation\":{\"Attachments\":[{\"AttachedPersonIds\":null,...\"Type\":\"Record\"}]"
在我得到这个字符串后,我通过几个方法将它返回给 ApiController(设置为返回 JSON),就像这样。
public class HintsController : ApiController
{
public string Get(string treeId, string personId)
{
return _hintService.GetHints(treeId, personId);
}
}
我尝试将字符串转换为文字字符串并尝试再次序列化字符串。这样做只会添加更多的转义字符,并不能解决问题。我认为问题在于我如何使用初始调用,因为它将它从 JSON 转换为字符串。但我不知道如何避免这种情况。
提前感谢您的任何想法。