如何添加JSON属性runtime c#

时间:2017-04-18 07:40:45

标签: c# json json.net

我的JSON如下所示:

[
  {
    "id": "test.txt",
    "fields": {
      "_str.application": [ "Text File" ],
      "_str.body": [ "asdsadasd" ],
      "_str.mimetype": [ "text/plain" ]
    }
  }
]

如何从C#代码中将新属性添加到fields

我已为Serialization

做好准备
public class Fields
{
    [JsonProperty("_str.application")]
    public IList<string> _str_application { get; set; }

    [JsonProperty("_str.body")]
    public IList<string> _str_body { get; set; }

    [JsonProperty("_str.mimetype")]
    public IList<string> _str_mimetype { get; set; }
}

public class Document
{
    [JsonProperty("id")]
    public string id { get; set; }

    [JsonProperty("fields")]
    public Fields fields { get; set; }
}

我需要在运行时向JsonProperty添加新的Fields

1 个答案:

答案 0 :(得分:0)

您可以使用Json.NET反序列化为动态并在运行时添加字段,然后再次序列化:

string jsonText = "{'Bar':'something'}";
dynamic foo = JObject.Parse(jsonText);
foo.Dynamic="field";
jsonText = JsonConvert.SerializeObject(foo);