Newtonsoft.Json.JsonSerializationException('在 'Goodbuy.Models.product' 上从 'Id' 获取值时出错。') 将领域对象序列化为 json 时
Newtonsoft.Json.JsonSerializationException( 'Error getting value from 'Id' on 'Goodbuy.Models.product'.') when serializing a realm object to json
我正在尝试将我的领域对象序列化为 json 字符串,但我得到 Newtonsoft.Json.JsonSerializationException: 'Error getting value from 'Id' 在 'Goodbuy.Models.product' 上。'这是发生序列化的方法:
async void OnItemSelected(product item)
{
if (item == null)
return;
var model = await ProductService.GetProduct(item.Id);
//Convert Object to string
string jsonStrObj = await Task.Run(() => JsonConvert.SerializeObject(model));
// This will push the ItemDetailPage onto the navigation stack
await Shell.Current.GoToAsync($"{nameof(ItemDetailPage)}?ProductModel={jsonStrObj}");
}
下面是我的领域对象 class:
public class product :RealmObject
{
[PrimaryKey]
[MapTo("_id")]
public ObjectId? Id { get; set; }
[MapTo("brand")]
public string Brand { get; set; }
[MapTo("image_url")]
public string ImageUrl { get; set; }
[MapTo("name")]
public string Name { get; set; }
}
使用带有 MemberSerialization.OptIn 参数的 JsonObject 属性,并创建仅吐出 ObjectId 的 Guid 部分的自定义转换器Json.NET如何序列化 ObjectId。
[JsonObject(MemberSerialization.OptIn)]
public class product : RealmObject
{
[PrimaryKey]
[JsonProperty(PropertyName = "id")]
[JsonConverter(typeof(ObjectIdConverter))]
public ObjectId? Id { get; set; }
[JsonProperty(PropertyName = "brand")]
public string Brand { get; set; }
[JsonProperty(PropertyName = "image_url")]
public string ImageUrl { get; set; }
[JsonProperty(PropertyName = "name")]
public string Name { get; set; }
}
[JsonObject(MemberSerialization.OptIn)]
public class product : RealmObject
{
[PrimaryKey]
[JsonProperty(PropertyName = "id")]
[JsonConverter(typeof(ObjectIdConverter))]
public ObjectId? Id { get; set; }
[JsonProperty(PropertyName = "brand")]
public string Brand { get; set; }
[JsonProperty(PropertyName = "image_url")]
public string ImageUrl { get; set; }
[JsonProperty(PropertyName = "name")]
public string Name { get; set; }
}
我正在尝试将我的领域对象序列化为 json 字符串,但我得到 Newtonsoft.Json.JsonSerializationException: 'Error getting value from 'Id' 在 'Goodbuy.Models.product' 上。'这是发生序列化的方法:
async void OnItemSelected(product item)
{
if (item == null)
return;
var model = await ProductService.GetProduct(item.Id);
//Convert Object to string
string jsonStrObj = await Task.Run(() => JsonConvert.SerializeObject(model));
// This will push the ItemDetailPage onto the navigation stack
await Shell.Current.GoToAsync($"{nameof(ItemDetailPage)}?ProductModel={jsonStrObj}");
}
下面是我的领域对象 class:
public class product :RealmObject
{
[PrimaryKey]
[MapTo("_id")]
public ObjectId? Id { get; set; }
[MapTo("brand")]
public string Brand { get; set; }
[MapTo("image_url")]
public string ImageUrl { get; set; }
[MapTo("name")]
public string Name { get; set; }
}
使用带有 MemberSerialization.OptIn 参数的 JsonObject 属性,并创建仅吐出 ObjectId 的 Guid 部分的自定义转换器Json.NET如何序列化 ObjectId。
[JsonObject(MemberSerialization.OptIn)]
public class product : RealmObject
{
[PrimaryKey]
[JsonProperty(PropertyName = "id")]
[JsonConverter(typeof(ObjectIdConverter))]
public ObjectId? Id { get; set; }
[JsonProperty(PropertyName = "brand")]
public string Brand { get; set; }
[JsonProperty(PropertyName = "image_url")]
public string ImageUrl { get; set; }
[JsonProperty(PropertyName = "name")]
public string Name { get; set; }
}
[JsonObject(MemberSerialization.OptIn)]
public class product : RealmObject
{
[PrimaryKey]
[JsonProperty(PropertyName = "id")]
[JsonConverter(typeof(ObjectIdConverter))]
public ObjectId? Id { get; set; }
[JsonProperty(PropertyName = "brand")]
public string Brand { get; set; }
[JsonProperty(PropertyName = "image_url")]
public string ImageUrl { get; set; }
[JsonProperty(PropertyName = "name")]
public string Name { get; set; }
}