Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 仅使用Newtonsoft c将JSON字符串反序列化为条件数据的实际对象#_C#_.net_Json.net_Asp.net Web Api2_Json Deserialization - Fatal编程技术网

C# 仅使用Newtonsoft c将JSON字符串反序列化为条件数据的实际对象#

C# 仅使用Newtonsoft c将JSON字符串反序列化为条件数据的实际对象#,c#,.net,json.net,asp.net-web-api2,json-deserialization,C#,.net,Json.net,Asp.net Web Api2,Json Deserialization,我在web API项目中工作,我将数据列表(list)存储在cache中,作为JSON字符串,此缓存对象可能有数千条记录,有时我们需要从缓存列表中获取少量记录,但由于缓存中存储的数据是JSON字符串,因此我们必须先“反序列化”它,然后在转换对象(list)中使用Linq搜索该项。 如果有任何方法可以反序列化JSON字符串中的only条件值,则此过程不必要地将整个JSON字符串转换为object,以仅获取我想要调优的少数项 目前我正在使用Newtonsoft.Json库进行反序列化 pub

我在web API项目中工作,我将数据列表(
list
)存储在
cache
中,作为
JSON
字符串,此缓存对象可能有数千条记录,有时我们需要从缓存列表中获取少量记录,但由于缓存中存储的数据是JSON字符串,因此我们必须先“反序列化”它,然后在转换对象(
list
)中使用
Linq
搜索该项。 如果有任何方法可以
反序列化JSON字符串中的
only条件值,则此过程不必要地将整个JSON字符串转换为object,以仅获取我想要调优的少数项

目前我正在使用
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字符串中,我只想得到包含
“code”的元素:“DUPLICATE_CHECK”
,那么序列化只应该发生在下面的部分,因此我应该在列表中只得到一条记录,或者尽可能地作为一个单独的项

{
    "ID": 8,
    "Code": "DUPLICATE_CHECK",
    "Description": "This {0} already exists.",
    "Type": "2",
    "IsActive": "Y"
}

请告诉我是否有任何方法可以做到这一点。

为什么要将数据缓存为字符串而不是已经水合的对象?无需序列化,只需按原样缓存对象集合。这似乎是一个@Nkosi控制器方法使用ActionFilterAttribute存储在缓存中的数据。请检查我的日志,我正在从filterContext.Response.Content.ReadAsStringAsync()读取OnActionExecuted方法中的数据。因此,它作为JSON字符串存储在缓存中。
{
    "ID": 8,
    "Code": "DUPLICATE_CHECK",
    "Description": "This {0} already exists.",
    "Type": "2",
    "IsActive": "Y"
}