asp.net - 如何获取/反序列化 JsonPatchDocument 对象?
asp.net - How to get / deserialize object of JsonPatchDocument?
我可以使用JsonConvert.SerializeObject()
序列化JsonPatchDocument
模型,但是结果类型是字符串,如何将其转换为普通数组类型?或者如何将 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 命名空间中的 JTokens
做一些事情。您可以使用 var jToken = JToken.Parse(pathSerializer)
将 pathserialized
字符串转换为 JToken
,然后通过使用 var childTokens = jToken.Children()
.
枚举它们来探索底层对象和属性
其中一个子标记将成为 JObject
,它是对象的 Json 表示。您可以使用 jObject["propertyName"]
.
访问 JObject
的属性
您根本不必序列化 JsonPatchDocument
对象。您可以直接通过对象访问其属性。例如过滤路径 属性:
var elementsWithPath = patch.Operations.Where(o => o.path.Equals("some path"));
我可以使用JsonConvert.SerializeObject()
序列化JsonPatchDocument
模型,但是结果类型是字符串,如何将其转换为普通数组类型?或者如何将 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 命名空间中的 JTokens
做一些事情。您可以使用 var jToken = JToken.Parse(pathSerializer)
将 pathserialized
字符串转换为 JToken
,然后通过使用 var childTokens = jToken.Children()
.
其中一个子标记将成为 JObject
,它是对象的 Json 表示。您可以使用 jObject["propertyName"]
.
JObject
的属性
您根本不必序列化 JsonPatchDocument
对象。您可以直接通过对象访问其属性。例如过滤路径 属性:
var elementsWithPath = patch.Operations.Where(o => o.path.Equals("some path"));