Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.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# asp.net-如何获取/反序列化JsonPatchDocument的对象?_C#_Asp.net Core_Json Patch - Fatal编程技术网

C# asp.net-如何获取/反序列化JsonPatchDocument的对象?

C# asp.net-如何获取/反序列化JsonPatchDocument的对象?,c#,asp.net-core,json-patch,C#,Asp.net Core,Json Patch,我可以使用JsonConvert.SerializeObject序列化JsonPatchDocument模型,但结果的类型是string,如何将其转换为普通数组类型?或者如何直接将JsonPatchDocument对象获取到数组 var pathSerialized = JsonConvert.SerializeObject(patch); Console.WriteLine(pathSerialized); // Result as string: // "[{"value":"2018-

我可以使用JsonConvert.SerializeObject序列化JsonPatchDocument模型,但结果的类型是string,如何将其转换为普通数组类型?或者如何直接将JsonPatchDocument对象获取到数组

var pathSerialized = JsonConvert.SerializeObject(patch);
Console.WriteLine(pathSerialized);

// Result as string: 
// "[{"value":"2018-08-30","path":"/openTo","op":"replace"},{"value":"2018-04-01","path":"/openFrom","op":"replace"}]" 

我认为您可能希望使用Newtonsoft.Json.Linq名称空间中的内容。您可以使用var JToken=JToken.ParsepathSerializer将pathserialized字符串转换为JToken,然后通过使用var childTokens=JToken.Children枚举底层对象和属性来探索它们


其中一个子标记将是JObject,它是对象的Json表示。您可以使用JObject[propertyName]访问JObject的属性。

我认为您可能希望从Newtonsoft.Json.Linq名称空间中执行一些操作。您可以使用var JToken=JToken.ParsepathSerializer将pathserialized字符串转换为JToken,然后通过使用var childTokens=JToken.Children枚举底层对象和属性来探索它们


其中一个子标记将是JObject,它是对象的Json表示。您可以使用JObject[propertyName]访问JObject的属性。

您根本不必序列化JsonPatchDocument对象。您可以直接通过对象访问其属性。例如,过滤路径属性:

var elementsWithPath = patch.Operations.Where(o => o.path.Equals("some path"));

您根本不必序列化JsonPatchDocument对象。您可以直接通过对象访问其属性。例如,过滤路径属性:

var elementsWithPath = patch.Operations.Where(o => o.path.Equals("some path"));

嗯。。。这就是序列化对象的目的。。。它为您提供了一个字符串表示形式,表示您输入的内容。如果你想把这些json对象放在一个单独的数组中,你必须逐个序列化它们,否则我会错过什么吗?我想检查这个对象属性的条件,然后字符串类型是不可能检查的,这就是为什么我想得到这个对象。你有什么解决办法吗?为什么要把它序列化呢?为什么不直接访问JsonPatchDocument的属性呢?是的,我也很困惑。您从一个成熟的强类型对象开始,将其转换为JSON字符串,然后抱怨不希望它成为JSON字符串。然后,不要将其转换为JSON字符串。@croxy我试图直接访问属性,但随后返回了错误,如JsonPatchDocument不包含“路径”的定义。你有什么建议吗?嗯。。。这就是序列化对象的目的。。。它为您提供了一个字符串表示形式,表示您输入的内容。如果你想把这些json对象放在一个单独的数组中,你必须逐个序列化它们,否则我会错过什么吗?我想检查这个对象属性的条件,然后字符串类型是不可能检查的,这就是为什么我想得到这个对象。你有什么解决办法吗?为什么要把它序列化呢?为什么不直接访问JsonPatchDocument的属性呢?是的,我也很困惑。您从一个成熟的强类型对象开始,将其转换为JSON字符串,然后抱怨不希望它成为JSON字符串。然后,不要将其转换为JSON字符串。@croxy我试图直接访问属性,但随后返回了错误,如JsonPatchDocument不包含“路径”的定义。你有什么建议吗?