标签: jsonserializer

在.Net 4.0中找不到JavaScriptSerializer

我似乎无法在Visual Studio 2010中找到JavaScriptSerializer对象和System.Web.Script.Serialization命名空间.我需要将某些内容序列化为JSON我应该使用什么?

是的,我已经System.Web.Extensions在项目中包含了(在System.Web.Extensions.dll中).这让我感到震惊的原因是什么?

  • 我知道在3.5中System.Web.Extensions被标记为过时

c# jsonserializer visual-studio

292
推荐指数
11
解决办法
29万
查看次数

Jackson enum Serializing和DeSerializer

我正在使用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)

我在这里错过了什么?

java enums jsonserializer jackson

208
推荐指数
11
解决办法
22万
查看次数

序列化包含循环对象值的对象

我有一个对象(解析树),其中包含对其他节点的引用的子节点.

我想序列化这个对象,使用JSON.stringify(),但我得到:JSON.stringify()因为我提到的结构.

我怎么能解决这个问题?对于我来说,序列化对象中是否表示了对其他节点的这些引用并不重要.

另一方面,在创建对象时从对象中删除这些属性似乎很乏味,我不想对解析器(narcissus)进行更改.

javascript json jsonserializer stringify

143
推荐指数
3
解决办法
12万
查看次数

JObject.Parse与JsonConvert.DeserializeObject

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)

c# jsonserializer json.net

73
推荐指数
2
解决办法
5万
查看次数

Ruby对象和JSON序列化(没有Rails)

我试图理解Ruby中的JSON序列化格局.我是Ruby的新手.

如果您不使用Rails,是否有任何好的JSON序列化选项?

这似乎就是这个答案所针对的(对于Rails) 如何将Ruby对象转换为JSON

json gem看起来好像你必须编写自己的to_json方法.我无法让to_json处理数组和散列(文档说它适用于这些)是否有一个原因json gem不只是反映对象并使用默认的序列化策略?这不是如何to_yaml工作(猜测在这里)

ruby serialization json jsonserializer

68
推荐指数
6
解决办法
9万
查看次数

.NET 4有内置的JSON序列化器/解串器吗?

.NET 4是否附带任何序列化/反序列化JSON数据的类?

  • 我知道有第三方库,比如JSON.NET,但我正在寻找内置于.NET中的东西.

  • 我在MSDN上找到了数据合约,但它适用于WCF,而不适用于Winforms或WPF.

.net serialization json jsonserializer

59
推荐指数
3
解决办法
6万
查看次数

错误CS0234:命名空间"System.Web"中不存在类型或命名空间名称"Script"

我想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指出的那样,他们在我的情况下没有帮助.

知道如何解决这个问题吗?

c# visual-studio-2010 jsonserializer javascriptserializer

36
推荐指数
4
解决办法
10万
查看次数

.net core GraphQL、GraphQL.SystemTextJson:不支持“System.Type”实例的序列化和反序列化

在 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)

jsonserializer graphql asp.net-core

24
推荐指数
1
解决办法
5万
查看次数

类型的反序列化构造函数中的每个参数必须绑定到反序列化时的对象属性或字段

我有以下简单的课程:

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)

c# jsonserializer system.text.json

18
推荐指数
1
解决办法
2万
查看次数

SignalR 2.0更改Json Serializer以支持派生类型对象

请注意,我在这里明确地引用了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)

c# jsonserializer derived-types signalr

17
推荐指数
1
解决办法
4560
查看次数