Scenario:
Json operations using JSON.NET
Solution:
using Newtonsoft.Json.Linq; using System;
namespace ConsoleApplication1
{
class User
{
public string ModifiedBy { get; set; }
public Role[] Roles { get; set; }
public DateTime CreatedDate { get; set; }
}
class Role
{
public string Name { get; set; }
}
class DynamicJson
{
static async Task Main(string[] args)
{
//CreateDynamicJason();
var data = @"{""CreatedDate"":""2020-07-14T16:03:47.0182203-07:00"",
""ModifiedBy"":""Test User"",
""Roles"": [
{
""Name"":""Manager""
},
{
""Name"":""Coordinator""
}
]
}";
//ReadDynamicJason(data);
ReadDynamicJasonToObject(data);
}
public static void CreateDynamicJason()
{
var jObj = new JObject();
jObj.Add("CreatedDate", DateTime.Now);
dynamic users = jObj;
users.ModifiedBy = "Test User";
users.Roles = new JArray() as dynamic;
dynamic role = new JObject();
role.Name = "Manager";
users.Roles.Add(role);
role = new JObject();
role.Name = "Coordinator";
users.Roles.Add(role);
Console.WriteLine(users.ToString());
Console.ReadLine();
}
public static void ReadDynamicJason(string data)
{
dynamic json = JValue.Parse(data);
string user = json.ModifiedBy;
DateTime createdDate = json.CreatedDate;
//JArray jarray = JArray.Parse(json.Roles) as JArray;
//dynamic roles = jarray;
string role = string.Empty;
foreach (dynamic r in json.Roles)
{
role = role + r.Name.ToString() + ",";
}
Console.WriteLine($"{user} - {role} - {createdDate}");
Console.ReadLine();
}
public static void ReadDynamicJasonToObject(string data)
{
dynamic users = JValue.Parse(data);
//JArray users = JArray.Parse(data) as JArray;
var userInfo = users.ToObject<User>();
string user = userInfo.ModifiedBy;
DateTime createdDate = userInfo.CreatedDate;
//JArray jarray = JArray.Parse(json.Roles) as JArray;
//dynamic roles = jarray;
string role = string.Empty;
foreach (dynamic r in userInfo.Roles)
{
role = role + r.Name.ToString() + ",";
}
Console.WriteLine($"{user} - {role} - {createdDate}");
Console.ReadLine();
}
}
} | |
No comments:
Post a Comment