我似乎无法在Visual Studio 2010中找到JavaScriptSerializer对象和System.Web.Script.Serialization命名空间.我需要将某些内容序列化为JSON我应该使用什么?
是的,我已经System.Web.Extensions在项目中包含了(在System.Web.Extensions.dll中).这让我感到震惊的原因是什么?
System.Web.Extensions被标记为过时我正在使用JAVA 1.6和Jackson 1.9.9我有一个枚举
public enum Event {
FORGOT_PASSWORD("forgot password");
private final String value;
private Event(final String description) {
this.value = description;
}
@JsonValue
final String value() {
return this.value;
}
}
Run Code Online (Sandbox Code Playgroud)
我添加了一个@JsonValue,这似乎完成了将对象序列化为:
{"event":"forgot password"}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试反序列化时,我得到了一个
Caused by: org.codehaus.jackson.map.JsonMappingException: Can not construct instance of com.globalrelay.gas.appsjson.authportal.Event from String value 'forgot password': value not one of declared Enum instance names
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?
我有一个对象(解析树),其中包含对其他节点的引用的子节点.
我想序列化这个对象,使用JSON.stringify(),但我得到:JSON.stringify()因为我提到的结构.
我怎么能解决这个问题?对于我来说,序列化对象中是否表示了对其他节点的这些引用并不重要.
另一方面,在创建对象时从对象中删除这些属性似乎很乏味,我不想对解析器(narcissus)进行更改.
JsonConvert.DeserializeObject和JObject.Parse有什么区别?据我所知,两者都是一个字符串,并在Json.NET库中.什么样的情况会使一个人比另一个人更方便,还是主要只是偏好?
作为参考,这里有一个例子,我用两者做同样的事情 - 解析一个Json字符串并返回一个Json属性的列表.
public ActionResult ReadJson()
{
string countiesJson = "{'Everything':[{'county_name':null,'description':null,'feat_class':'Civil','feature_id':'36865',"
+"'fips_class':'H1','fips_county_cd':'1','full_county_name':null,'link_title':null,'url':'http://www.alachuacounty.us/','name':'Alachua County'"+ ",'primary_latitude':'29.7','primary_longitude':'-82.33','state_abbreviation':'FL','state_name':'Florida'},"+
"{'county_name':null,'description':null,"+ "'feat_class':'Civil','feature_id':'36866','fips_class':'H1','fips_county_cd':'3','full_county_name':null,'link_title':null,'url':'http://www.bakercountyfl.org/','name':'Baker County','primary_latitude':'30.33','primary_longitude':'-82.29','state_abbreviation':'FL','state_name':'Florida'}]}";
//Can use either JSONParseObject or JSONParseDynamic here
List<string> counties = JSONParseObject(countiesJson);
JSONParseDynamic(countiesJson);
return View(counties);
}
public List<string> JSONParseObject(string jsonText)
{
JObject jResults = JObject.Parse(jsonText);
List<string> counties = new List<string>();
foreach (var county in jResults["Everything"])
{
counties.Add((string)county["name"]);
}
return counties;
}
public List<string> JSONParseDynamic(string jsonText)
{
dynamic jResults = JsonConvert.DeserializeObject(jsonText);
List<string> counties = new List<string>();
foreach(var county in jResults.Everything)
{
counties.Add((string)county.name);
}
return …Run Code Online (Sandbox Code Playgroud) 我试图理解Ruby中的JSON序列化格局.我是Ruby的新手.
如果您不使用Rails,是否有任何好的JSON序列化选项?
这似乎就是这个答案所针对的(对于Rails) 如何将Ruby对象转换为JSON
json gem看起来好像你必须编写自己的to_json方法.我无法让to_json处理数组和散列(文档说它适用于这些)是否有一个原因json gem不只是反映对象并使用默认的序列化策略?这不是如何to_yaml工作(猜测在这里)
.NET 4是否附带任何序列化/反序列化JSON数据的类?
我想JavaScriptSerializer在我的应用程序中使用.
我最初收到了
找不到JavaScriptSerializer
我通过添加以下内容解决了
using System.Web.Script.Serialization;
Run Code Online (Sandbox Code Playgroud)
但是后面的子关键字Script用蓝线加下划线:
名称空间'System.Web'中不存在类型或命名空间'Script'(您是否缺少程序集引用?)
所以我在项目中添加了一个引用:
C:\ Program Files(x86)\ Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Web.Extensions.dll
这没有用.我仍然收到相同错误的蓝色下划线.引用标有感叹号黄色警告:

我在这个帖子上尝试了建议的解决方案,但正如@ user781490指出的那样,他们在我的情况下没有帮助.
知道如何解决这个问题吗?
在 ASP.NET core 5 应用程序中,我将 GraphQL 与 GraphQL.SystemTextJson 结合使用。当我尝试返回结果时,出现 System.NotSupportedException,提示“不支持‘System.Type’实例的序列化和反序列化,应该避免,因为它们可能会导致安全问题。”。
我怀疑 DocumentWriter 的配置中缺少某些内容。
在ConfigureServices中是这样配置的:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
...
services.AddScoped<IDocumentWriter, DocumentWriter>();
Run Code Online (Sandbox Code Playgroud)
有什么建议吗?
更新:
为了完整起见,按照@AndrewSilver的要求,我报告了整个代码(改编自https://www.red-gate.com/simple-talk/dotnet/net-development/building-and-consuming-graphql-api-in -asp-net-core-3-1/并移植到 .net core 5.0)。
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { …Run Code Online (Sandbox Code Playgroud) 我有以下简单的课程:
public abstract class GitObject
{
public Repository Repository { get; set; }
public abstract string Serialize();
public abstract void Deserialize(string data);
public class Blob : GitObject
{
public string Data { get; set; }
public Blob(Repository repository, string data = null)
{
if (data != null) Data = File.ReadAllText(data);
Repository = repository;
}
public override string Serialize()
{
return JsonSerializer.Serialize(this);
}
public override void Deserialize(string data)
{
Blob blobData = JsonSerializer.Deserialize<Blob>(data);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我知道可能还有很大的改进空间(我很高兴听到这一点)。但是,该方法Deserialize给了我错误
Each parameter …Run Code Online (Sandbox Code Playgroud) 请注意,我在这里明确地引用了SignalR 2.0 ...我已经看到了一些(讨厌的)方法用于SignalR 1.1/1.2 ......但是还没有用于2.0.
有没有人在更改SignalR 2.0默认的json序列化程序以启用派生类型的发送方面有任何成功?根据我读到的有关SignalR 2.0的内容,这应该是可能的,但是,我没有运气,也没有在任何地方找到完整的例子.
这是我开始的方式...任何帮助将不胜感激.
我的Startup.cs
[assembly: OwinStartup(typeof(SignalRChat.Startup))]
namespace SignalRChat
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
// this should allow the json serializer to maintain the object structures
var serializer = new JsonSerializer()
{
PreserveReferencesHandling = PreserveReferencesHandling.Objects,
TypeNameHandling = TypeNameHandling.Objects,
TypeNameAssemblyFormat = FormatterAssemblyStyle.Simple
};
// register it so that signalr can pick it up
GlobalHost.DependencyResolver.Register(typeof(JsonSerializer), () => serializer);
app.MapSignalR();
}
}
}
Run Code Online (Sandbox Code Playgroud)
Hub上的方法
public void AddStock(Stock stock)
{
string stockType = stock.GetType().ToString(); …Run Code Online (Sandbox Code Playgroud) jsonserializer ×10
c# ×5
json ×3
.net ×1
asp.net-core ×1
enums ×1
graphql ×1
jackson ×1
java ×1
javascript ×1
json.net ×1
ruby ×1
signalr ×1
stringify ×1