I have a json string with the following structure
{
"resource": "user",
"method": "create",
"fields": {
"name": "John",
"surname: "Smith",
"email": "[email protected]"
}
}
The keys inside fields are variable, that means I don't know them in advance
So, instead of deserializing a json string to an object, I need to traverse the json, in order to get the properties inside fields in a Dictionary or something like that.
I heard about the Json.NET library and it's ability to parse dynamic jsons, but I'm not sure it it's already included in net-core or not.
What would be the standard / easiest way to accomplish that in net-core 2.0. Code example would be appreciated.
Yes. You can add Newtonsoft.json package to your .net core project. And to query the dynamic json object, you can use the JObject
object provided by the library to parse your json into a dynamic object. Here is the link for the document.
Given your json sample it may look like this
var resource = JObject.Parse(json);
foreach (var property in resource.fields.Properties())
{
Console.WriteLine("{0} - {1}", property.Name, property.Value);
}