Search code examples
jsonvisual-studioasp.net-core-mvcjsonserializerjson-lib

jsonserializer.serialize library failed


public class Product
    {
        public int Id { get; set; }
        public string ProductName { get; set; }
        public int Quantity { get; set; }
    }
public IActionResult Index()
        {
            var products = new List<Product>
            {
                new Product{Id = 1, ProductName= "Kulaklik", Quantity = 4},
                new Product{Id = 2, ProductName= "Şarj Kablosu", Quantity = 6},
                new Product{Id = 3, ProductName= "Akilli Saat", Quantity = 5}
            };
            

            string data = JsonSerializer.Serialize(products);

            // return View();


            TempData["x"] = 5;
            ViewBag.x = 5;
            ViewData["x"] = 5;

            return RedirectToAction("Index2");
            
        }
public IActionResult Index2()
        {

            var data = TempData["products"].ToString();
            List<Product> products = JsonSerializer.Deserialize<List<Product>>(data);


            return View();
        }

I have an Asp.Net Core Mvc project. I want to send data to another Action with JsonSerializer class. But among the overloads of the Serializer method there is no method that expects only a single value. I wonder what package I need to add for Visual Studio? serialize has a red line under it


Solution

  • You probably have installed both - Newtonsoft.Json and System.Text.Json serializers. Newtonsoft.Json.JsonSerializer.Serialize doesnt have an overload with one argument and it causes an error. So you have to use a namespace to use anther serializer

    string data = System.Text.Json.JsonSerializer.Serialize(products);