3

我可以JsonPatchDocument使用 序列化模型JsonConvert.SerializeObject(),但结果类型是字符串,如何将其转换为普通数组类型?或者如何将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"}]" 
4

2 回答 2

7

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

var elementsWithPath = patch.Operations.Where(o => o.path.Equals("some path"));
于 2018-06-13T13:13:09.160 回答
0

我认为您可能希望JTokens从 Newtonsoft.Json.Linq 命名空间做一些事情。您可以将pathserialized字符串转换为JTokenwith var jToken = JToken.Parse(pathSerializer),然后通过使用 var 枚举它们来探索底层对象和属性childTokens = jToken.Children()

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

于 2018-06-13T13:01:41.217 回答