Periods in the name of c# dynamic ExpandoObjects?

2019-02-25 21:55发布

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";
ActionSpec.id = 12345;

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

2条回答
何必那么认真
2楼-- · 2019-02-25 22:14

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.

查看更多
爷的心禁止访问
3楼-- · 2019-02-25 22:35

Using Json.Net

JObject jObj = new JObject();

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

var json = jObj.ToString();
查看更多
登录 后发表回答