文章内容

2017/4/25 16:23:18,作 者: 黄兵

JavaScriptSerializer.Deserialize 方法 (String, Type)

将 JSON 格式字符串转换为指定类型的对象。

public object Deserialize(
	string input,
	Type targetType
)

代码实例:

执行webAPI请求,序列化和范序列化详细内容参见这篇文章:JSON使用JsonPropertyAttribute

using Newtonsoft.Json;
using PhotographyGallery.Models;
using System.Net;
using System.IO;

namespace PhotographyGallery.Data
{
public class BingRepository
{
public BingImage[] GetBingImages()
{
var results = new BingImage[] { };
var webClient = new WebClient();
webClient.Headers.Add("Ocp-Apim-Subscription-Key", "018b48326ce247919bd60c3121812766");
byte[] searchResults = webClient.DownloadData(string.Format("https://api.cognitive.microsoft.com/bing/v5.0/images/search?q={0}&mkt=en-us",
"rocky+mountains&count=8"));
var serializer = new JsonSerializer();
using (var stream = new MemoryStream(searchResults))
using (var reader = new StreamReader(stream))
using (var jsonReader = new JsonTextReader(reader))
{
return results = serializer.Deserialize<BingImageResponse>(jsonReader).value;
}
}
}
}

调用:

using System.Web.Mvc;
using PhotographyGallery.Models;
using PhotographyGallery.Data;

namespace PhotographyGallery.Controllers
{
public class HomeController : Controller
{
BingRepository bingRepository = new BingRepository();

public ActionResult Index()
{
BingImage[] photoList = bingRepository.GetBingImages();
return View(photoList);
}

public ActionResult About()
{
return View();
}

public string ImageLink(string url)
{

return url;
}
}
}

项目地址:photography-gallery

分享到:

发表评论

评论列表