【问题标题】:Raw property with System.Text.JsonSystem.Text.Json 的原始属性
【发布时间】:2020-07-13 05:21:57
【问题描述】:

我想知道,是否有办法在我的 JSON 对象中保留一个特定属性的原始内容。

public class MyClass {
  public int RegularNumber { get; set; }
  public string OtherStuff { get; set; }
  public RawJsonString SomeNestedData { get; set; }
}

背景是,客户端SomeNestedData对象是一个不规则的字符串数组和数组。我找不到适合的合适的 c# 类型,甚至不需要反序列化服务器上​​的属性,因为它作为原始 JSON 保存到数据库中。

那么有什么方法可以实现类似RawJsonString 的类吗?还是我应该更好地使用IEnumerable<object>

【问题讨论】:

  • 你是怎么序列化的?
  • 你不能将 json 存储在常规的 string 中吗?
  • @PavelAnikhouski 使用 axios。
  • @AndréReichelt JsonExtensionData 可能会有所帮助
  • @404 OP 正在使用System.Text.Json

标签: c# json system.text.json


【解决方案1】:

如果您不打算在服务器端处理数据而只在客户端处理,您可以将字段设置为字符串值。对于存储此数据的数据库字段,请确保设置为考虑所有 JSON 数据的潜在大小和潜在的字符编码,因为这些可能会出现问题。

 public string SomeNestedData { get; set; } 

但是,如果您想要或可以为 JSON 数据创建用于(反)序列化目的的数据模型,您可以确保只有有效的 JSON 数据存储在字段中,请执行以下操作。 .

private string JSONSomeNestedData  { get; set; }

public  {model}  SomeNestedData 
  { get { return Deserialize(JSONSomeNestedData); }}
  { set { JSONSomeNestedData = Serialize(value);  }}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-15
    • 2018-01-08
    • 2020-02-14
    • 2017-07-30
    • 2010-09-30
    • 2020-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多