【问题标题】:JavaScriptSerializer is not allowed in .net core project?.net 核心项目中不允许使用 JavaScriptSerializer?
【发布时间】:2019-06-04 05:51:44
【问题描述】:

我在 .net 核心项目中工作。我想使用 JavaScriptSerializer 序列化对象。

JavaScriptSerializer Serializer = new JavaScriptSerializer();

我添加了命名空间using System.Web.Script.Serialization;。它抛出错误。我用谷歌搜索了它。我看到 .net 核心项目在某些站点中没有System.Web.Script.Serialization;

还有其他方法可以像 JavaScriptSerializer 那样序列化 .net 核心中的对象吗?

【问题讨论】:

    标签: asp.net-core-2.1 jsonserializer json-serialization


    【解决方案1】:

    在 .net 核心中使用 Newtonsoft.Json 序列化和反序列化对象 (JSON) 的最常见方式。

    需要安装Newtonsoft.Json的Nuget包

    使用如下语句添加:

    using Newtonsoft.Json;
    

    并将其用作:

    object o = JsonConvert.DeserializeObject(json1);
    string json2 = JsonConvert.SerializeObject(o, Formatting.Indented);
    

    【讨论】:

      【解决方案2】:

      对于 ASP.NET Core 3.1,我们可以使用来自 System.Text.JsonJsonSerializer.Deserializestring/dynamic 字典 Dictionary<string, dynamic>

      加载示例ClientApp\package.json:

      using System;
      using System.Text.Json;
      using System.Collections.Generic;
      
      ...
      
      var packageJson = File.ReadAllText(Path.Combine(env.ContentRootPath, "ClientApp", "package.json"));
      
      var packageInfo = JsonSerializer.Deserialize<Dictionary<string, dynamic>>(packageJson);
      
      Console.WriteLine("SPA Name: {0}, SPA Version: {1}", 
          packageInfo["name"], packageInfo["version"]);
      

      当然,我们必须使用Target > Copy 命令在.csproj 中将ClientApp\package.json 复制到发布目录。

      【讨论】:

        【解决方案3】:

        安装 Newtonsoft.Json 然后

        在控制器中:

        string data = JsonConvert.SerializeObject(new { MyUser = user, MyId = id });
        object dataObj = JsonConvert.DeserializeObject(data);
        return Json(dataObj);
        

        在 Javascript 文件中:

        $.ajax({
           // some codes!
           success: function(data){
              var user = data.MyUser;
              var id = data.MyId
           }
        });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-06-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-05-19
          • 2017-08-05
          相关资源
          最近更新 更多