2017-09-04 16 views
2

我有一个JSON字符串结构如下如何手动解析净芯JSON字符串2.0

{ 
    "resource": "user", 
    "method": "create", 
    "fields": { 
     "name": "John", 
     "surname: "Smith", 
     "email": "[email protected]" 
    } 
} 

领域是可变的,这意味着该键,我不知道他们提前

因此,而不是反序列化JSON字符串对象,我需要遍历JSON,为了得到里面领域在词典或类似的东西的属性。

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

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

+1

是的,你可以在.NET的核心使用Json.NET。 – MarcinJuraszek

回答

4

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

鉴于你的JSON样品可能看起来像这样

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

工作对象不包含字段的定义........... –

+0

这对我有用:foreach(resource.Properties()中的var属性) –

0

Json.NET是序列化.NET对象时的前往库。但是,当对象的结构不是静态的时候,来自System.Json命名空间的API将更加简单易用。 System.Json可以在.NET 2.0的核心由的NuGet安装包像这样使用:

dotnet add package System.Json --version 4.4.0 

下面是关于如何使用的API从System.Json命名空间的一个很好的教程:Working with JSON in .NET – a Silverlight example