34
votes

I have a C# List which looks like this:

var reqUsers = from user in users
    select new
    {
        username = user.username,
        firstName = user.firstName,
        lastName = user.lastName,
        email = user.email
    };

I use the below to convert / serialize to JSON ( Newtonsoft.JSON ):

var json = JsonConvert.SerializeObject(reqUsers);

With the above code I get a json string like this:

[{ username: "alan", firstName: "Alan", lastName: "Johnson", email: "[email protected]" },
 { username: "allison", firstName: "Allison", lastName: "House", email: "[email protected]" },
 { username: "ryan", firstName: "Ryan", lastName: "Carson", email: "[email protected]" } ]

however here is what I need to get : since I am using handlebars templating -

var testdata = {
  users: [
  { username: "alan", firstName: "Alan", lastName: "Johnson", email: "[email protected]" },
  { username: "allison", firstName: "Allison", lastName: "House", email: "[email protected]" },
  { username: "ryan", firstName: "Ryan", lastName: "Carson", email: "[email protected]" } ]

How can use the Serializer to name the JSON array as above ?

2

2 Answers

78
votes

Use:

var json = JsonConvert.SerializeObject(new { users = reqUsers });
1
votes

use:

var json= new JavaScriptSerializer().Serialize(reqUsers);