Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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# JsonDocument可以用作合同解析程序吗?_C#_Json_Json.net_.net Core 3.0_System.text.json - Fatal编程技术网

C# JsonDocument可以用作合同解析程序吗?

C# JsonDocument可以用作合同解析程序吗?,c#,json,json.net,.net-core-3.0,system.text.json,C#,Json,Json.net,.net Core 3.0,System.text.json,我对新发布的.NET Core 3.0及其新的System.Text.Json有一个问题,我想问一下新的JsonDocument是否可以类似于Newtonsoft Json.NET中的ContractResolver类 我需要的是非常简单的,假设一个类有两个属性 public string Name {get; set;} public string Street {get; set;} 我不确定我是否理解这个问题,你是在问a是否可以用作a吗?这对我来说毫无意义,因为契约解析器不是一个JSON文

我对新发布的.NET Core 3.0及其新的
System.Text.Json
有一个问题,我想问一下新的
JsonDocument
是否可以类似于Newtonsoft Json.NET中的
ContractResolver

我需要的是非常简单的,假设一个类有两个属性

public string Name {get; set;} public string Street {get; set;}
我不确定我是否理解这个问题,你是在问a是否可以用作a吗?这对我来说毫无意义,因为契约解析器不是一个JSON文档,它是一组如何将JSON映射到.Net对象的规则。或者你在问,在
System.Text.JSON
命名空间中是否有一个与自定义
IContractResolver
等价的类?另外,你能否澄清一下你的“一个类”对应于整个JSON或仅对应于
“person\u A”
“person\u B”
“man\u A”
“woman\u B”
的值。如果您正在
System.Text.JSON
中寻找与自定义契约解析程序等效的内容,则当前似乎没有公开任何内容。如果你能请你澄清你的问题,我可以解释,并给出一些解决方案。谢谢你的评论,我编辑了这个问题,希望它有助于澄清我试图做什么。 {"person_A":{"full-name":"Micheal","address-street":"1st avenue","address-city":"New York"}, "person_B":{"full-name":"John","address-street":"Green street","address-city":"London"}} {"man_A":{"fullname":"Bush","street":"1st avenue","city":"Washington","state":"US"}, "woman_B":{"fullname":"McCarter","street":"Green street","city":"London","state":"GB"}} private void AddMap<U>(Expression<Func<Instrument,U>> expression, string jsonPropertyName) { var memberExpression = (MemberExpression)expression.Body; propertyMappings.Add(memberExpression.Member.Name, jsonPropertyName); } public override async Task<List<Person>> GetPeopleAsync(HttpRequestMessage request) { AddMap(x => x.Name, "full-name"); AddMap(x => x.Street, "address-street"); var result = new List<Person>(); var response = await SendAsync(request, HttpCompletionOption.ResponseHeadersRead); var stream = await response.Content.ReadAsStreamAsync(); var document = await JsonDocument.ParseAsync(stream); document.RootElement.GetProperty("people").EnumerateObject() .ToList() .ForEach(x => { var person= new Person(); foreach (var p in propertyMappings) { x.Value.TryGetProperty(p.Value, out var prop); var v = person.GetType().GetProperty(p.Key); v.SetValue(person,Convert.ChangeType(prop.ToString(),v.PropertyType)); } result.Add(person); }); return result; }</code>