如何在net-core 2.0中手动解析JSON字符串

我有一个具有以下结构的json字符串

{ "resource": "user", "method": "create", "fields": { "name": "John", "surname: "Smith", "email": "john@gmail.com" } } 

字段内的键是可变的,这意味着我事先不知道它们

因此,我不需要将json字符串反序列化为对象,而是需要遍历json,以便获取Dictionary中字段内的属性或类似的东西。

我听说过Json.NET库,它能够解析动态jsons,但我不确定它是否已经包含在net-core中了。

在net-core 2.0中实现这一目标的标准/最简单方法是什么? 代码示例将不胜感激。

是。 您可以将Newtonsoft.json包添加到.net核心项目中。 要查询动态json对象,可以使用库提供的JObject对象将json解析为动态对象。 这是该文档的链接 。

鉴于你的json样本,它可能看起来像这样

  var resource = JObject.Parse(json); foreach (var property in resource.fields.Properties()) { Console.WriteLine("{0} - {1}", property.Name, property.Value); } 

当您序列化.NET对象时, Json.NET是首选库。 但是,当对象的结构不是静态时,System.Json命名空间中的API将更易于使用。 通过从NuGet安装包,可以在.NET Core 2.0中使用System.Json,如下所示:

 dotnet add package System.Json --version 4.4.0 

这是一个很好的教程,介绍如何使用System.Json命名空间中的API: 在.NET中使用JSON – Silverlight示例

 var serializer = new JavaScriptSerializer(); serializer.RegisterConverters(new[] { new DynamicJsonConverter() }); dynamic jsonObject = serializer.Deserialize(jsonString, typeof(Example));