在我的服务器上,我尝试了这个测试代码:
[AllowAnonymous]
[Route("GetX")]
public IQueryable<Phrase> GetX()
{
var phrases = new List<PhraseX>
{
new PhraseX() {Keyword="abc", Translation1="abc1", Translation2="abc2" },
new PhraseX() {Keyword="def", Translation1="def1", Translation2="def2" },
new PhraseX() {Keyword="ghi", Translation1="ghi1", Translation2="ghi2" },
};
return db.Phrases;
}
这是我到目前为止在客户端上的终端应用程序:
var request = HttpWebRequest.Create("http://www.example.com/api/Phrase/GetX");
request.ContentType = "application/json";
request.Method = "GET";
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
我收到了预期的数据,但现在我不知道如何才能将json返回的数据恢复到列表中?有关如何做到这一点的任何建议?
答案 0 :(得分:2)
您需要反序列化 JSON到C#对象。
这些链接可以帮助您:
https://msdn.microsoft.com/en-us/library/bb412179(v=vs.110).aspx
http://www.newtonsoft.com/json/help/html/deserializeobject.htm
您可以这样做:
string jsonStr = "[{Keyword:\"abc\", Translation1:\"abc1\", Translation2:\"abc2\" },{Keyword:\"def\", Translation1:\"def1\", Translation2:\"def2\" },{Keyword:\"ghi\", Translation1:\"ghi1\", Translation2:\"ghi2\" }]";
JavaScriptSerializer jss = new JavaScriptSerializer();
List<PhraseX> phrases = jss.Deserialize<List<PhraseX>>(jsonStr);
其中PhraseX是一个类
public class PhraseX
{
public string Keyword { get; set; }
public string Translation1 { get; set; }
public string Translation2 { get; set; }
}
注意:您会在JavaScriptSerializer
中找到System.Web.Extensions.dll
课程
您也可以使用JSON.NET进行相同的操作。
希望它有所帮助。
答案 1 :(得分:0)