【发布时间】:2017-07-03 22:39:03
【问题描述】:
我们正在使用第 3 方 api kraken.io 来优化我们的图像。
优化图像的结果发布在Webhook。
在他们的 api 文档中它指出:优化结束后,Kraken 将以JSON 格式application/json 向您的请求中指定的callback_url 发送消息POST。
我正在使用ngrok 允许远程webhooks 将数据发送到我的开发机器,使用this 文章。
发布到回调 URL 的结果:
HTTP/1.1 200 OK
{
"id": "18fede37617a787649c3f60b9f1f280d",
"success": true,
"file_name": "header.jpg",
"original_size": 324520,
"kraked_size": 165358,
"saved_bytes": 159162,
"kraked_url": "http://dl.kraken.io/18/fe/de/37617a787649c3f60b9f1f280d/header.jpg"
}
要映射的类
public class KrakenOptimizedResults
{
public string id { get; set; }
public bool success { get; set; }
public string file_name { get; set; }
public int original_size { get; set; }
public int kraked_size { get; set; }
public int saved_bytes { get; set; }
public string kraked_url { get; set; }
}
动作方法
[HttpPost]
public ActionResult OptimizedWebHook()
{
Request.InputStream.Position = 0;
string jsonString = new System.IO.StreamReader(Request.InputStream).ReadToEnd();
KrakenOptimizedResults obj = new JavaScriptSerializer().Deserialize<KrakenOptimizedResults>
(jsonString);
return Json(obj);
}
但是当我在 Html Visualizer 中 debug 接收到的 jsonString 时,它看起来像 key 和 value 对而不是 Json 格式。
收到的结果不是 Json 格式:
file_name=header.jpeg&original_size=118066&kraked_size=102459&saved_bytes=15607
我猜content-type:收到的数据是application/x-www-form-urlencoded。
为什么我收到 key 和 value 对而不是 Json 格式?如何在 asp.net mvc 中反序列化 Json 数据?
【问题讨论】:
标签: json asp.net-mvc asp.net-mvc-4 json.net kraken-image-optimizer