Periods in the name of c# dynamic ExpandoObjects?

Go To


Maybe this is a silly question, but I'm working on a project that wants me to generate some JSON that looks like this:

{'action.type':'post', 'application':APP_ID}

In C#, I'm trying to create this "action.type" attribute, with the value of "post". How would I do that? Here's how I've typlically been creating stuff like:

dynamic ActionSpec = new ExpandoObject();
ActionSpec.SomeParam = "something"; = 12345;

I can't go "ActionSpec.action.type", because that will not output the desired "action.type". Does this make sense? Thanks!

2012-04-04 20:57
by kevin


You could try populating it via the dictionary:

IDictionary<string, object> expandoDictionary = ActionSpec;
expandoDictionary["action.type"] = "post";

However, I wouldn't be at all surprised if it rejected that as an invalid identifier.

2012-04-04 20:58
by Jon Skeet


Using Json.Net

JObject jObj = new JObject();

jObj["action.type"] = "post";
jObj["application"] = "APP_ID";

var json = jObj.ToString();
2012-04-04 21:14
by L.B