C# 如何将字典反序列化为Xamarin形式的对象

C# 如何将字典反序列化为Xamarin形式的对象,c#,json,xamarin.forms,C#,Json,Xamarin.forms,当我向服务器请求时,我会收到一个作为字典的响应: { data=({ gender=female; id=3490074761922520002; name=joy; picture={ data={ url=""; }; };

当我向服务器请求时,我会收到一个作为字典的响应:

    {
          data=({
            gender=female;
            id=3490074761922520002;
            name=joy;
            picture={
                  data={
                    url="";
                  };
            };
          },
          {
            gender=female;
            id=8242568878166175182;
            name="name";
            picture={
              data={
                url="";
              };
            };
          })
         paging={
            next="";
          }
         summary={
            "total_count"=66;
          };
     }

如何将此响应字典反序列化到对象

另一种去序列化的方法是:

public async Task<List<Produto>> GetProdutosAsync()
        {
            try
            {
                string url = "http://www.something.com/api/produtos/";
                var response = await client.GetStringAsync(url);
                var produtos = JsonConvert.DeserializeObject<List<Produto>>(response);
                return produtos;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
public异步任务GetProdutosAsync()
{
尝试
{
字符串url=”http://www.something.com/api/produtos/";
var response=await client.GetStringAsync(url);
var produtos=JsonConvert.DeserializeObject(响应);
返回产品;
}
捕获(例外情况除外)
{
掷骰子;
}
}

将您的类型更改为produto。

其他取消序列化的方法是:

public async Task<List<Produto>> GetProdutosAsync()
        {
            try
            {
                string url = "http://www.something.com/api/produtos/";
                var response = await client.GetStringAsync(url);
                var produtos = JsonConvert.DeserializeObject<List<Produto>>(response);
                return produtos;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
public异步任务GetProdutosAsync()
{
尝试
{
字符串url=”http://www.something.com/api/produtos/";
var response=await client.GetStringAsync(url);
var produtos=JsonConvert.DeserializeObject(响应);
返回产品;
}
捕获(例外情况除外)
{
掷骰子;
}
}
为您的类型更改produto。

[更新答案] 经过两天的寻找,我终于找到了解决这个问题的方法。 这是我的密码:

var err = new NSError();

var theJSONData = NSJsonSerialization.Serialize(response.Data, NSJsonWritingOptions.PrettyPrinted, out err);

var theJSONText = new NSString(theJSONData, NSStringEncoding.UTF8);

Console.WriteLine(theJSONText);
response.data为NSDictionary->JSON字符串

[更新答案] 经过两天的寻找,我终于找到了解决这个问题的方法。 这是我的密码:

var err = new NSError();

var theJSONData = NSJsonSerialization.Serialize(response.Data, NSJsonWritingOptions.PrettyPrinted, out err);

var theJSONText = new NSString(theJSONData, NSStringEncoding.UTF8);

Console.WriteLine(theJSONText);

response.data as NSDictionary->JSON string

我的响应是一个字典,不是JSON string,但上面的响应似乎是一个JSON文档。所有json都是键/值对。我认为trailmax的响应是正确的。您如何序列化json?我使用Newtonsoft.json库中的JsonConvert.SerializeObject。我的响应是一个字典,不是json字符串,但上面的响应似乎是一个json文档。所有json都是键/值对。我认为trailmax的回答是正确的。您如何序列化json?我使用Newtonsoft.json库中的JsonConvert.SerializeObject谢谢您的回答,但我的回答是NSDictionary类型,而不是JSONTanks,但我的回答是NSDictionary类型,而不是json