157

Since there is no JavaScriptSerializer, what native implementation can be used to handle this?

I noticed JsonResult and I can format data to JSON with this, but how do I deserialize?

Or maybe I am missing some dependencies in project.json?

2 Answers 2

260

You can use Newtonsoft.Json, it's a dependency of Microsoft.AspNet.Mvc.ModelBinding which is a dependency of Microsoft.AspNet.Mvc. So, you don't need to add a dependency in your project.json.

#using Newtonsoft.Json
....
JsonConvert.DeserializeObject(json);

Note, using a WebAPI controller you don't need to deal with JSON.

UPDATE ASP.Net Core 3.0

Json.NET has been removed from the ASP.NET Core 3.0 shared framework.

You can use the new JSON serializer layers on top of the high-performance Utf8JsonReader and Utf8JsonWriter. It deserializes objects from JSON and serializes objects to JSON. Memory allocations are kept minimal and includes support for reading and writing JSON with Stream asynchronously.

To get started, use the JsonSerializer class in the System.Text.Json.Serialization namespace. See the documentation for information and samples.

To use Json.NET in an ASP.NET Core 3.0 project:

    services.AddMvc()
        .AddNewtonsoftJson();

Read Json.NET support in Migrate from ASP.NET Core 2.2 to 3.0 Preview 2 for more information.

Sign up to request clarification or add additional context in comments.

3 Comments

Now AspNetCore.Mcv has no dependencies on Newtonsoft.JSON . Microsoft.AspNet.Mvc.Formatters.Json assembly used for serialization.
@RomanPokrovskij, wrong, : Microsoft.AspNetCore.Mvc.Formatters.Json has a dependency to Microsoft.AspNetCore.JsonPatch which has a dependency to Newtonsoft.Json 9.0.1 nuget.org/packages/Microsoft.AspNetCore.Mvc.Formatters.Json, nuget.org/packages/Microsoft.AspNetCore.JsonPatch
You can also use JsonConvert.DeserializeObject<YourClass>(json) to deserialize to an specific class.
48

.net core

using System.Text.Json;

###To serialize

var jsonStr = JsonSerializer.Serialize(MyObject)

###Deserialize

var weatherForecast = JsonSerializer.Deserialize<MyObject>(jsonStr);

For more information about excluding properties and nulls check out This Microsoft site

2 Comments

do you know how to deserialize json to dynamic type?
Be aware that System.Text.Json is a "lossy" serializer and will not include properties that are on base classes.

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.