Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Xamarin iOS中检索JSON数据_C#_Ios_Rest_Visual Studio 2015_Xamarin.ios - Fatal编程技术网

C# 在Xamarin iOS中检索JSON数据

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>);

我在从Restful从Json对象检索数据时遇到问题。 目前,我正在使用RestSharp从api获取响应。 根据我所学的

我对数据检索不太了解。如果我只想从API中检索一个数据

  • 我可以声明要从模型类中的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,虽然有点晚了。我已经设法完成了申请。再次感谢你的回复,尽管有点晚了。我已经设法完成了申请。再次感谢您的回复