Cli*_*ead 1 c# serialization json realm xamarin.ios
我需要使用Xamarin和C#将深度嵌套的RealmObject序列化为JSON,以发布到Web api。
这样做的原因是因为我不希望继承RealmObject属性,所以实际上我在寻找可以序列化为JSON的POCO表示形式。我在Realm中找不到用于Xamarin的帮助器方法,因此我想我需要自己动手。
我正在考虑一些选择,希望能得到一些反馈:
目前,我正在查看选项2,因为它非常简单
public class Person:RealmObject {
public string FirstName {get;set;}
public string LastName {get;set;}
public IList<Dog> Dogs {get;set;}
public dynamic ToObject(){
return new {FirstName,LastName, Dogs = Dogs.Select(x => x.ToObject())};
}
}
public class Dog {
public string Name;
public dynamic ToObject(){
return new {Name};
}
}
var person = new Person(){...}
var json = JsonConvert.SerializeObject(person.ToObject());
var content = new StringContent(json);
var response = await client.PostAsync(url, content);
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
如果您不介意应用一些属性,则更干净的解决方案(在我看来)是将JsonObject
属性与MemberSerialization.OptIn
参数一起使用:
[JsonObject(MemberSerialization.OptIn)] // Only properties marked [JsonProperty] will be serialized
public class Person : RealmObject
{
[JsonProperty]
public string FirstName { get; set; }
[JsonProperty]
public string LastName { get; set; }
[JsonProperty]
public IList<Dog> Dogs { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
536 次 |
最近记录: |