Jakub Wisniewski
Jakub Wisniewski

Reputation: 2249

JSON serialization/deserialization in ASP.Net Core

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?

Upvotes: 157

Views: 254323

Answers (2)

NoloMokgosi
NoloMokgosi

Reputation: 1718

.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

Upvotes: 48

agua from mars
agua from mars

Reputation: 17444

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.

Upvotes: 260

Related Questions