35

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 Answers 2

81

Use:

var json = JsonConvert.SerializeObject(new { users = reqUsers });
Sign up to request clarification or add additional context in comments.

1 Comment

When accessing the joson in the JS I had to use 'var thejson = @Html.Raw(json);' to not have issues with the quotes
2

use:

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

2 Comments

This is using the System.Web.Script.Serialization namespace instead of Netwonsoft.Json as the original poster was using. It's a valid option however.
thanks, This is good for byte array in object. prevent byte array convert to base64

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.