JsonPatchDocument для анонимного типа - PullRequest
0 голосов
/ 25 сентября 2019

Как применить 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);
        }
    }
}
...