Я работаю в проекте веб-API, где я сохранил список данных (List<someClass>
) в cache
в виде строки JSON
. Этот объект кэша может иметь тысячи записей, иногда нам нужно получить немного записей из этого кэшированного списка, но поскольку данные, хранящиеся в кэше в виде строки JSON, мы должны сначала «десериализовать» их, а затем в преобразованном объекте (List<someClass>
) мы ищем элемент с помощью Linq
.
Этот процесс без необходимости преобразует всю строку JSON в объект, чтобы получить только несколько элементов, которые я хочу настроить, если есть какой-либо способ Deserialize
только значение условия в строке JSON.
В настоящее время я использую библиотеку Newtonsoft.Json
для десерилизации.
public static T ConvertToType<T>(string jsonResponse)
{
T result = default(T);
result = string.IsNullOrEmpty(jsonResponse) ? result : JsonConvert.DeserializeObject<T>(jsonResponse);
return result;
}
Это образец строки JSON, которую я храню в cache
[
{
"ID": 1,
"Code": "SAVE_SUCCESS",
"Description": "Record successfully saved.",
"Type": "0",
"IsActive": "Y"
},
{
"ID": 3,
"Code": "SAVE_SUCCESS_PARAM",
"Description": "{0} successfully saved.",
"Type": "0",
"IsActive": "Y"
},
{
"ID": 8,
"Code": "DUPLICATE_CHECK",
"Description": "This {0} already exists.",
"Type": "2",
"IsActive": "Y"
},
{
"ID": 12,
"Code": "RESTORE_SUCCESS",
"Description": "Record successfully restored.",
"Type": "0",
"IsActive": "Y"
},
]
Предположим, в приведенной выше строке JSON, и я хочу получить только тот элемент, который имеет "Code": "DUPLICATE_CHECK"
, тогда сериализация должна происходить только для следующей части, и в результате я должен получить только одну запись в Списке или как отдельный элемент, насколько это возможно. .
{
"ID": 8,
"Code": "DUPLICATE_CHECK",
"Description": "This {0} already exists.",
"Type": "2",
"IsActive": "Y"
}
Пожалуйста, предложите мне, если есть какой-либо способ сделать это.