标签: deserialization

Cast vs Serialize/Deserialize C#

Scenario

I have a virtual method in a base class, which takes an object as a parameter.

I override this in derived classes - more specifically, view models - in order to work with the different objects from there, also:

public override void SomeMethod(object parameter)
{
    // ...

    base.SomeMethod(parameter);
}
Run Code Online (Sandbox Code Playgroud)

EDIT: Just to clarify - I am unable to change the SomeMethod signature in the base class - unfortunately, I'm stuck with object as the type :(

Let's say that …

c# serialization casting deserialization

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

Spring MVC:使用 Jackson objectMapper 将查询参数反序列化为 POJO

Spring Web应用程序配置包含ObjectMapper像这样配置的Jackson

  objectMapper.disable(ADJUST_DATES_TO_CONTEXT_TIME_ZONE)
  objectMapper.registerModule(new JavaTimeModule())
Run Code Online (Sandbox Code Playgroud)

JavaTimeModule添加来处理 的反序列化ZonedDateTime。有两个端点处理包含ZonedDateTime. POJO是这样的:

class MyRequest {
  ZonedDateTime from
  ZonedDateTime to
}
Run Code Online (Sandbox Code Playgroud)

具有端点的控制器是:

@Slf4j
@RestController
class MyController {

  @GetMapping('/pojo')
  void getPojo(MyRequest myRequest) {
    log.debug("Request received: $myRequest")
  }

  @PostMapping('/pojo')
  void postPojo(@RequestBody MyRequest myRequest) {
    log.debug("Request received: $myRequest")
  }
}
Run Code Online (Sandbox Code Playgroud)

当我发送带有正文的 POST /pojo 时

{"from": "2017-03-15T00:00:00Z", "to": "2017-03-16T00:00:00Z"}
Run Code Online (Sandbox Code Playgroud)

响应为200,反序列化成功。

相反,当我发送

GET /pojo?from=2017-03-15T00:00:00Z&to=2017-03-15T00:00:00Z
Run Code Online (Sandbox Code Playgroud)

收到 400 Bad Request 错误

Failed to convert from type [java.lang.String] to type [java.time.ZonedDateTime] for value '2017-03-15T00:00:00Z'
Run Code Online (Sandbox Code Playgroud)

这是有道理的,因为在 GET …

spring-mvc deserialization spring-boot jackson2

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

让 NodaTime.Serialization.JsonNet 使用自定义日期格式

我正在尝试反序列化 JSON,其中包含格式为 的日期2017-10-26 13:32:11 Etc/GMT当与Json.NETNodaTime.Serialization.JsonNet结合使用时, NodaTime似乎支持这一点。我在 StackOverflow 上找到了一些信息,这些信息使我仅使用 NodaTime 就能完成这项工作:

var date = "2017-10-26 13:32:11 Etc/GMT";

var pattern = ZonedDateTimePattern.CreateWithInvariantCulture(
    "yyyy'-'MM'-'dd HH':'mm':'ss z", 
    DateTimeZoneProviders.Tzdb
);

var result = pattern.Parse(date);
Run Code Online (Sandbox Code Playgroud)

但是,当将此示例扩展为使用其他两个包反序列化 JSON 时,我无法让它工作。通过阅读文档和其他资源,我相信这应该有效:

public class DateObj
{
    public ZonedDateTime Date { get; set; }
}

void Main()
{
    var date = "2017-10-26 13:32:11 Etc/GMT";
    var json = $"{{\"Date\": \"{date}\"}}";

    var pattern = ZonedDateTimePattern.CreateWithInvariantCulture(
        "yyyy-MM-dd HH:mm:ss z",
        DateTimeZoneProviders.Serialization
    );

    var settings = new JsonSerializerSettings();
    settings.ConfigureForNodaTime(pattern.ZoneProvider);
    var …
Run Code Online (Sandbox Code Playgroud)

c# json json.net deserialization nodatime

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

序列化对象和非序列化对象之间的区别?

我试图理解 Java 中的序列化和反序列化意味着什么。

我想当代码被编译并进入处理器执行时,我们用 Java 语言编写的所有内容都会变成字节集。编译后,所有东西都变成机器语言或字节。正确的 ..?

因此,对象创建已经是一组位于内存中待处理的字节,那么序列化和非序列化术语对对象有什么特殊作用呢?

我不清楚在计算机硬件中想象这两个术语......!

任何人都可以帮忙吗..?

谢谢

java serialization deserialization

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

使用 serde 解/序列化 yaml 或 json 时如何解构枚举?

我有一段serde代码可以实现我想要的功能,但我不喜欢它的实现方式。我正在寻求帮助以了解如何改进它。

\n

操场

\n
use std::any::Any;\n\ntrait Model: std::fmt::Debug + Any {\n    fn as_any(&self) -> &dyn Any;\n}\n\nimpl Model for Generator {\n    fn as_any(&self) -> &dyn Any {\n        self\n    }\n}\nimpl Model for Connector {\n    fn as_any(&self) -> &dyn Any {\n        self\n    }\n}\n\n#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]\npub struct Generator {\n    id: String,\n    #[serde(rename = "sourceID")]\n    source_id: String,\n}\n\n#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]\npub struct Connector {\n    id: String,\n    #[serde(rename = "sourceID")]\n    source_id: String,\n}\n\n#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]\n#[serde(tag = "type")]\nenum AllModels {\n    Generator(Generator),\n    Connector(Connector),\n}\n\nfn main() {\n    let …
Run Code Online (Sandbox Code Playgroud)

serialization yaml rust deserialization serde

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

如何在 C# 中从 JObject 中删除属性?

我有一个具有以下键/值的 JObject 实例:

{ "filed1": "4", "filed2": "name", "filed3": null, "filed4": "2021-09-20T00:00:00Z", "filed5": null, "filed6": null, "filed7": null }
Run Code Online (Sandbox Code Playgroud)

我需要删除一个属性,即filed1. 我怎样才能在 C# 中做到这一点?

c# json json.net deserialization

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

将 toml 文件中的字符串反序列化为 MacAddr6

我有一个 toml 文件,其中包含 id 和 mac 对,如下所示:

[[component]]
id = 1
mac = "d4:d7:04:c9:85:a4"
[[component]]
id = 3
mac = "3c:21:ee:b4:0d:ab"
[[component]]
id = 6
mac = "ea:f3:23:8c:b8:c1"
Run Code Online (Sandbox Code Playgroud)

目标是将此文件反序列化为该文件的 Vec structMacAddr6属于macaddr板条箱:

[[component]]
id = 1
mac = "d4:d7:04:c9:85:a4"
[[component]]
id = 3
mac = "3c:21:ee:b4:0d:ab"
[[component]]
id = 6
mac = "ea:f3:23:8c:b8:c1"
Run Code Online (Sandbox Code Playgroud)

当我尝试反序列化时,显示此错误:

内部:TomlError {消息:“无效类型:字符串“d4:d7:04:c9:85:a4”,期望长度为6的数组”

如果我在结构定义中更改MacAddr6String并且一切正常,那么我有一个解决方法。尽管如此,由于MacAddr6实现了serde::Deserializecore::str::FromStr我希望一次性检索完整的结构。我究竟做错了什么?

rust deserialization toml

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

有关ActionScript 3中xml反序列化的最佳实践是什么?

有关ActionScript 3中xml反序列化的最佳实践是什么?

我正在开发一款实时的多人Facebook游戏.我更喜欢用Flash编写客户端.此外,服务器端是用Java编写的.服务器和客户端之间的通信带有"socket".服务器和客户端相互发送xml.正如可能预期的那样,Xmls包含"对象",这些对象派生自位于两侧的类.类名称和属性是同步的.

谈到我的问题,我在actionscript端尝试了一些用于序列化和反序列化的库.但是大多数都不能完全发挥作用.

例如;

Asx3mer.instance.fromXML(xmlObj)

此库不会将xml转换为具有Array属性的对象,并且该数组包含另一个数组(我的意思是嵌套数组).

你能帮我解决这个问题吗?

谢谢.


起初,我选择了json进行自动序列化.但是当我反序列化json对象时,它被转换为类型为"Object"的对象.每次我都不得不在json字符串中放置一个标识符来处理它的类型.

我研究过AMF,但正如你所提到的,AMF使用它的消息传递标准,我认为在服务器端处理反序列化对象可能很困难(但现在,我的选择表明客户端反序列化变得难以处理).

xml serialization actionscript actionscript-3 deserialization

0
推荐指数
1
解决办法
419
查看次数

适当的Json反序列化

好的,我会在这里尝试对我的问题非常具体.经过一些研究后,我终于使我的代码工作了(有点,因为它没有返回所需的结果).我目前正在使用JSON.net并尝试反序列化以下Json字符串,这是对twitter API的响应.

[{"created_at":"2012-09-03T18:22:54Z","locations":[{"name":"Globales","woeid":1}],"trends":[{"query":"%2327CosasSobreMi","name":"#27CosasSobreMi","promoted_content":null,"url":"http:\/\/twitter.com\/search\/?q=%2327CosasSobreMi","events":null},{"query":"%23AskTravis","name":"#AskTravis","promoted_content":null,"url":"http:\/\/twitter.com\/search\/?q=%23AskTravis","events":null},{"query":"%23WhyDoPeopleThinkItsOkayTo","name":"#WhyDoPeopleThinkItsOkayTo","promoted_content":null,"url":"http:\/\/twitter.com\/search\/?q=%23WhyDoPeopleThinkItsOkayTo","events":null},{"query":"%22We%20%3C3%20Justin%22","name":"We \u003C3 Justin","promoted_content":null,"url":"http:\/\/twitter.com\/search\/?q=%22We%20%3C3%20Justin%22","events":null},{"query":"%22We%20Adore%20One%20Direction%22","name":"We Adore One Direction","promoted_content":null,"url":"http:\/\/twitter.com\/search\/?q=%22We%20Adore%20One%20Direction%22","events":null},{"query":"%22Stefan%20Is%20Elena's%20Humanity%22","name":"Stefan Is Elena's Humanity","promoted_content":null,"url":"http:\/\/twitter.com\/search\/?q=%22Stefan%20Is%20Elena's%20Humanity%22","events":null},{"query":"%22Eric%20Saade%20Come%20Back%20To%20Poland%22","name":"Eric Saade Come Back To Poland","promoted_content":null,"url":"http:\/\/twitter.com\/search\/?q=%22Eric%20Saade%20Come%20Back%20To%20Poland%22","events":null},{"query":"Hlavackova","name":"Hlavackova","promoted_content":null,"url":"http:\/\/twitter.com\/search\/?q=Hlavackova","events":null},{"query":"%22Serena%20Williams%22","name":"Serena Williams","promoted_content":null,"url":"http:\/\/twitter.com\/search\/?q=%22Serena%20Williams%22","events":null},{"query":"%22Kire%C3%A7burnu%20%C3%87akallar%C4%B1%22","name":"Kire\u00e7burnu \u00c7akallar\u0131","promoted_content":null,"url":"http:\/\/twitter.com\/search\/?q=%22Kire%C3%A7burnu%20%C3%87akallar%C4%B1%22","events":null}],"as_of":"2012-09-03T18:25:18Z"}]
Run Code Online (Sandbox Code Playgroud)

包含对象和东西的常规Json字符串...除了我不知道开头和结尾的第一个"[,]"是什么,一位朋友指出了这一点.现在我为Json字符串创建了一些类:

public class Location
{
    private string _name;
    private int _woeid;

    public string name { get { return _name; } set { value = _name; } }
    public int woeid { get { return _woeid; } set { value = _woeid; } }
}

public class Trend
{
    private string _query, _name, _url;
    private object _promoted_content, _events;

    public string query { get …
Run Code Online (Sandbox Code Playgroud)

c# twitter visual-studio-2005 json.net deserialization

0
推荐指数
1
解决办法
1830
查看次数

使用JSON.NET无法反序列化相当简单的JSON数据

我有一个问题,反序列化一些看起来像这样的JSON数据:

{
    "Var1": 0,
    "Var2": 2,
    "Var3": -1,
    "Var4": 5,
    "Var5": 1,
    "Var6": 3
}
Run Code Online (Sandbox Code Playgroud)

它位于远程服务器上,我获取它,然后在单独的类中使用此方法反序列化:

public static T _download_serialized_json_data<T>() where T : new()
{
    using (var w = new WebClient())
    {
        var json_data = string.Empty;
        try
        {
            json_data = w.DownloadString("http://url_to_json_data.json");
        }
        catch (Exception) { }
        return !string.IsNullOrEmpty(json_data) ? JsonConvert.DeserializeObject<T>(json_data) : new T();
    }
}
Run Code Online (Sandbox Code Playgroud)

我的JSON类:

public class Variables
{
    public int Var1 { get; set; }
    public int Var2 { get; set; }
    public int Var3 { get; set; …
Run Code Online (Sandbox Code Playgroud)

c# json.net deserialization

0
推荐指数
1
解决办法
227
查看次数