Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can you have a property name containing a dash

Tags:

c#

json.net

Is it possible to create an object with a property name that contains a dash character?

I am creating an anonymous object so that I can serialize it to Json using Json.Net and one of the properties I need contains a '-' dash character.

An example of what I want is:

var document =  {     condtions = new {         acl = "public-read",         bucket = "s3-bucketname",         starts-with = "test/path"     } }; 

I know I could replace the dash with underscores when creating the object and then replace them in the serialized string afterwards, but wanted to know if there is a way in the language to do this without this workaround.

like image 542
Pervez Choudhury Avatar asked Apr 24 '11 15:04

Pervez Choudhury


1 Answers

You can't do this with anonymous objects; field names must be valid identifiers. You could instead use a Dictionary, which Json.Net should serialise just as easily as an anonymous object:

var document = new {     conditions = new Dictionary<string, string>() {         { "acl", "public-read" },         { "bucket", "s3-bucketname" },         { "starts-with", "test/path" }     } }; 
like image 59
Marcelo Cantos Avatar answered Sep 21 '22 14:09

Marcelo Cantos