Как создать пользовательский конвертер json.net для возврата строки JSON, которая содержит JSON, хранящийся в сериализовC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как создать пользовательский конвертер json.net для возврата строки JSON, которая содержит JSON, хранящийся в сериализов

Сообщение Anonymous »

У меня есть класс C# с названием MergerSponse < /code>, который содержит 3 свойства: < /p>
  • messageId < /li>
    apiresponse1 < /li>
    apiresponse2 < /li>
    < /ul>
    ApiResponse1< /code> содержит экземпляр объекта класса, который был создан путем Deserialization JSON, возвращенный из стороннего внешнего вызова API.
    ApiResponse2 содержит экземпляр объекта класса, который был создан путем Deserialization JSON, возвращенный из другого внешнего API -вызова.string apiResponseJson1 = GetWebData1();
    ApiResponse1 apiResponse1 = JsonConvert.DeserializeObject(apiResponseJson1);

    string apiResponseJson2 = GetWebData2();
    ApiResponse2 apiResponse2 = JsonConvert.DeserializeObject(apiResponseJson2);

    MergeResponse mergeResp = new MergeResponse();
    mergeResp.MessageId = “1234-5678”;
    mergeResp.ApiResponse1 = apiResponse1;
    mergeResp.ApiResponse2 = apiResponse2;

    Объект Mergeresp затем сериализуется обратно на строку JSON и хранится в DB. />String json = JsonConvert.SerializeObject(mergeResp, Newtonsoft.Json.Formatting.Indented);
    < /code>
    Проблема заключается в том, что данные JSON, возвращаемые из сторонних внешних API, могут меняться с течением времени и включать новые свойства.
    Deserialization и повторная серия включает только свойства, которые находятся в ApiResponse1 и apiresponse2 классы.
    Мне нужно сохранить оригинальный JSON, который был возвращен API, включая любые новые свойства.
    Я Используется пример в следующем сообщении StackOverflow для хранения оригинальных объектов JSON в ApiResponse1 и apiResponse2 , когда исходный API JSON Deserialied:
    Хранив оригинальная строка JSON json В Deserialized json.net Objects
    ApiResponse1 объект хранит исходный API JSON в свойстве с именем apiresponse1.origjson .
    и apiresponse2 Объект хранит исходный API JSON в свойстве с именем apiresponse2 Чтобы остановить их сериализован. сериализация Mergeresp < /code> объект: < /p>

    api_response1 Значение свойства, установленное на Mergeresp.apiresponse1.origjson
  • api_response2 Значение свойства, установленное на Mergeresp.apiresponse2.origjson
e.g. написан{
“message_id”: “1234-5678”,
“api_response1”: {
// Include the ApiResponse1.OrigJson value here
},
“api_response2”: {
// Include the ApiResponse2.OrigJson value here
}
}


Подробнее здесь: https://stackoverflow.com/questions/794 ... t-contains
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»