匿名类型的JsonPatchDocument

时间:2019-09-25 12:21:40

标签: c# json asp.net-core .net-core json.net

如何将JsonPatchDocument应用于未知类型的对象?基本上,我有很多json文件,我想为其应用补丁。问题是,我的C#应用​​程序中没有确切的模型来将json映射到对象(文件中的json可能会有所不同,并且将来可能会更改-我不想每次都在有新属性的情况下重新编译应用程序添加/删除)。有没有办法将补丁应用到匿名对象或JObject / JArray?

这就是我得到的:

using Microsoft.AspNetCore.JsonPatch;
using Microsoft.AspNetCore.JsonPatch.Converters;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

namespace JsonPatchTest
{
    class Program
    {
        static void Main(string[] args)
        {
            JTokenReader reader = new JTokenReader(JArray.Parse("[{\"op\": \"remove\", \"path\": \"/title\" }]"));

            JsonPatchDocumentConverter converter = new JsonPatchDocumentConverter();
            JsonPatchDocument document = (JsonPatchDocument)converter.ReadJson(reader, typeof(JsonPatchDocument), null, new JsonSerializer());

            string json = "{ \"title\": \"test\" }";
            object myObject = null;

            // magic goes here > how to convert string to object and apply patch?

            document.ApplyTo(myObject);
        }
    }
}

0 个答案:

没有答案