.net 核心项目中不允许使用 JavaScriptSerializer?
JavaScriptSerializer is not allowed in .net core project?
我在 .net 核心项目中工作。我想使用 JavaScriptSerializer 序列化对象。
JavaScriptSerializer Serializer = new JavaScriptSerializer();
我添加了命名空间 using System.Web.Script.Serialization;
。它会抛出错误。我用谷歌搜索了它。我看到 .net 核心项目在某些站点中没有 System.Web.Script.Serialization;
。
是否有其他方法可以像 JavaScriptSerializer 一样序列化 .net 核心中的对象?
在 .net 核心中,使用 Newtonsoft.Json.
序列化和反序列化对象 (JSON) 的最常见方式
您需要安装Newtonsoft.Json
的Nuget包
使用如下语句添加:
using Newtonsoft.Json;
并将其用作:
object o = JsonConvert.DeserializeObject(json1);
string json2 = JsonConvert.SerializeObject(o, Formatting.Indented);
安装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
}
});
对于 ASP.NET Core 3.1 我们可以使用 JsonSerializer.Deserialize
from System.Text.Json
和 string
/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"]);
当然,我们必须使用 .csproj
.
中的 Target
> Copy
命令将 ClientApp\package.json
复制到发布目录
我在 .net 核心项目中工作。我想使用 JavaScriptSerializer 序列化对象。
JavaScriptSerializer Serializer = new JavaScriptSerializer();
我添加了命名空间 using System.Web.Script.Serialization;
。它会抛出错误。我用谷歌搜索了它。我看到 .net 核心项目在某些站点中没有 System.Web.Script.Serialization;
。
是否有其他方法可以像 JavaScriptSerializer 一样序列化 .net 核心中的对象?
在 .net 核心中,使用 Newtonsoft.Json.
序列化和反序列化对象 (JSON) 的最常见方式您需要安装Newtonsoft.Json
使用如下语句添加:
using Newtonsoft.Json;
并将其用作:
object o = JsonConvert.DeserializeObject(json1);
string json2 = JsonConvert.SerializeObject(o, Formatting.Indented);
安装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
}
});
对于 ASP.NET Core 3.1 我们可以使用 JsonSerializer.Deserialize
from System.Text.Json
和 string
/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"]);
当然,我们必须使用 .csproj
.
Target
> Copy
命令将 ClientApp\package.json
复制到发布目录