C# 在Xamarin iOS中检索JSON数据
我在从Restful从Json对象检索数据时遇到问题。 目前,我正在使用RestSharp从api获取响应。 根据我所学的 我对数据检索不太了解。如果我只想从API中检索一个数据C# 在Xamarin iOS中检索JSON数据,c#,ios,rest,visual-studio-2015,xamarin.ios,C#,Ios,Rest,Visual Studio 2015,Xamarin.ios,我在从Restful从Json对象检索数据时遇到问题。 目前,我正在使用RestSharp从api获取响应。 根据我所学的 我对数据检索不太了解。如果我只想从API中检索一个数据 我可以声明要从模型类中的api检索的特定数据,还是需要声明api中的每个参数 如何仅从API检索特定数据 如果Api由外部的对象组成,如何获取嵌套对象中的数据 请告诉我这件事。提前谢谢你 这是我创建的示例代码 var client = new RestClient(<myAPIkey>);
- 我可以声明要从模型类中的api检索的特定数据,还是需要声明api中的每个参数
- 如何仅从API检索特定数据
- 如果Api由外部的对象组成,如何获取嵌套对象中的数据
var client = new RestClient(<myAPIkey>);
var request = new RestRequest(String.Format("post", Method.GET));
client.ExecuteAsync(request, response =>
{
Console.WriteLine(response.Content);
});
模型类为
public class TestInfo
{
public string id { get; set; }
public string name { get; set; }
}
以及反序列化的代码
TestInfo curTest = new TestInfo();
curTest = JsonConvert.DeserializeObject<TestInfo>(json1);
Console.WriteLine(curTest.id);
TestInfo-curTest=new TestInfo();
curTest=JsonConvert.DeserializeObject(json1);
控制台写入线(curTest.id);
我仍然无法从json数据中获取id和名称,因为它在Console.WriteLine中返回空。您能指导我如何读取json数据吗?使用返回的结构并将其放在类似于获取映射对象的东西上。然后可以对其进行反序列化:
rootobjectobj=newJavaScriptSerializer()。反序列化(response.Content);
//你想要的财产;
使用返回的结构并将其放在类似于获取映射对象的东西上。然后可以对其进行反序列化:
rootobjectobj=newJavaScriptSerializer()。反序列化(response.Content);
//你想要的财产;
我是否可以声明要从api检索的特定数据
还是我需要声明API中的每个参数
这取决于api的设计方式。当你说参数时,你是想说路线还是终点?你的问题有点困惑
如何仅从API检索特定数据
你能说得更具体些吗?您是在谈论您试图检索数据的路线吗
如果Api由另一部分中的对象组成,如何获取
嵌套对象中的数据
您可以使用Newtonsoft.Json(这是nuget中最流行的包)来反序列化Json对象。此外,只有创建一个C#类,它将是json模型的镜像,这才有可能实现
您可以使用类似的在线工具自动创建此类
编辑:
由于您正在尝试反序列化多个对象的列表,因此应尝试以下方法:
var json1 =
"[{\"id\":\"518523721\",\"name\":\"ftyft\"},\r\n{\"id\":\"527032438\",\"name\":\"ftyftyf\"},\r\n{\"id\":\"527572047\",\"name\":\"ftgft\"}, \r\n{\"id\":\"531141884\",\"name\":\"ftftft\"}]";
var curTest = JsonConvert.DeserializeObject<List<TestInfo>>(json1);
Console.WriteLine(curTest[0].id);
var json1=
“[{\'id\':\'518523721\',\'name\':\'ftyft\'”,\r\n{'id\':\'527032438\',\'name\':'ftyftyf\',\r\n{'id\':\'527572047\',\'name\':'ftgft\',\r\n{'id\':'531141884\','name\':'ftftftftft\'”;
var curTest=JsonConvert.DeserializeObject(json1);
Console.WriteLine(curTest[0].id);
现在可以了
我是否可以声明要从api检索的特定数据
还是我需要声明API中的每个参数
这取决于api的设计方式。当你说参数时,你是想说路线还是终点?你的问题有点困惑
如何仅从API检索特定数据
你能说得更具体些吗?您是在谈论您试图检索数据的路线吗
如果Api由另一部分中的对象组成,如何获取
嵌套对象中的数据
您可以使用Newtonsoft.Json(这是nuget中最流行的包)来反序列化Json对象。此外,只有创建一个C#类,它将是json模型的镜像,这才有可能实现
您可以使用类似的在线工具自动创建此类
编辑:
由于您正在尝试反序列化多个对象的列表,因此应尝试以下方法:
var json1 =
"[{\"id\":\"518523721\",\"name\":\"ftyft\"},\r\n{\"id\":\"527032438\",\"name\":\"ftyftyf\"},\r\n{\"id\":\"527572047\",\"name\":\"ftgft\"}, \r\n{\"id\":\"531141884\",\"name\":\"ftftft\"}]";
var curTest = JsonConvert.DeserializeObject<List<TestInfo>>(json1);
Console.WriteLine(curTest[0].id);
var json1=
“[{\'id\':\'518523721\',\'name\':\'ftyft\'”,\r\n{'id\':\'527032438\',\'name\':'ftyftyf\',\r\n{'id\':\'527572047\',\'name\':'ftgft\',\r\n{'id\':'531141884\','name\':'ftftftftft\'”;
var curTest=JsonConvert.DeserializeObject(json1);
Console.WriteLine(curTest[0].id);
现在可以用了。我迟到了一点,但它对我有用
var request = HttpWebRequest.Create(@"http://peerff.azurewebsites.net/api/team");
request.ContentType = "application/json";
request.Method = "GET";
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
}
我迟到了一点,但这对我很有效
var request = HttpWebRequest.Create(@"http://peerff.azurewebsites.net/api/team");
request.ContentType = "application/json";
request.Method = "GET";
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
}
我的obj。“属性”在Console.WriteLine中返回空。仍然无法从Aphi Yahya处获取数据,目前我在将System.Web.Extensions包括在我的项目中时遇到了问题。我正在使用基于Xamarin IOS的Visual Studio for Mac,使用这个:curTest=JsonConvert.DeserializeObject(json1);因为您正在分析objects.my obj的列表。“Property”在Console.WriteLine中返回空。仍然无法从Aphi Yahya处获取数据,目前我在将System.Web.Extensions包括在我的项目中时遇到了问题。我正在使用基于Xamarin IOS的Visual Studio for Mac,使用这个:curTest=JsonConvert.DeserializeObject(json1);因为您正在解析对象列表,所以我使用Newtonsoft.Json来反序列化Json数据。但它在Console.WriteLine(data.date)中返回空对象。您确定api正在返回数据吗?您是否使用post man进行了测试?我编辑了我的答案,我知道您的实现有什么问题。非常感谢,我已经成功地检索到了数据。我使用了Newtonsoft.Json来反序列化我的Json数据。但它在Console.WriteLine(data.date)中返回空对象。您确定api正在返回数据吗?你用post man测试过吗?我编辑了我的答案,我知道你的实现出了什么问题。非常感谢,我已经成功地检索到了数据。谢谢Kaan,虽然有点晚了。我已经设法完成了申请。再次感谢你的回复,尽管有点晚了。我已经设法完成了申请。再次感谢您的回复