我目前正在接收JSON,然后我试图将该响应分解为一个类。我到目前为止的代码如下:
public class Response
{
public string ID { get; set; }
public string Description { get; set; }
}
public void Example()
{
string JSONResponse = JsonConvert.SerializeObject(FetchDeskData("cases"));
// Errors on this next line
Response trimmedResponse = JsonConvert.DeserializeObject<Response>(JSONResponse);
}
“FetchDeskData(”cases“)返回的数据是(this),但是,在错误的行上,我收到以下错误:
Error converting value "{"total_entries":598042,"page":1,"...(continues)
我应该以不同的方式解析这个JSON吗?在序列化/反序列化之前我应该做些什么吗?
我从desk.com提取这些数据,他们有一些你可以在http://dev.desk.com找到的文档,但它似乎没有告诉我在解析之前我需要过滤掉一些东西。< / p>
感谢任何帮助,谢谢。
答案 0 :(得分:0)
您可以使用Visual Studio 2013,2015从json创建模型类,我做到了并且解析了JSON。 要使用此功能,您必须在剪贴板中放置JSON / XML,将光标放在.cs文件中,然后使用编辑&gt;选项。选择性粘贴&gt;粘贴JSON AS类
查看生成的代码:
<a onclick="notesChecked()">Checked</a>
答案 1 :(得分:0)
我通过使用以下代码解决了这个问题,以便从API解析/读取响应:
private void TestProcess()
{
JObject objData = JObject.Parse(FetchJSONData());
string sName = (string)objData["customers"][1]["Name"];
int iAge = (int)objData["customers"][1]["Age"];
}
private string FetchJSONData()
{
WebRequest req = WebRequest.Create("https://api.website.com");
string sAPICredentials = "username" + ":" + "password";
req.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(new ASCIIEncoding().GetBytes(sAPICredentials)));
try
{
WebResponse res = req.GetResponse();
Stream rcvStream = res.GetResponseStream();
StreamReader rdrStream = new StreamReader(rcvStream, Encoding.UTF8);
string JSONResponse = rdrStream.ReadToEnd();
return JSONResponse;
}
catch (WebException we)
{
var response = we.Response as HttpWebResponse;
if (response.StatusCode == HttpStatusCode.Forbidden)
{
// Deal with error
}
}
}
这是一个简化的示例,您应该使用此信息填充类,但这应该可以帮助您开始检索数据。