标签: deserialization

为什么我的异常类需要序列化?

当你使用类Exception扩展一个类(用于创建新的异常)时,你会得到一个警告serialVersionUID.我知道serialVersionUID在序列化和反序列化时它起着重要作用,但是当我的异常需要被序列化时?任何人都可以给我一个实际案例,我希望我的自定义异常类具有序列化和反序列化?

java serialization exception serialversionuid deserialization

43
推荐指数
3
解决办法
2万
查看次数

使用Json.Net将int转换为bool

我正在调用web服务,bool字段的返回数据是0或1但是我的模型我使用的是System.Bool

使用Json.Net可以将0/1转换为我的模型的bool吗?

目前我收到一个错误

Newtonsoft.Json.JsonSerializationException:将值"0"转换为类型'System.Boolean'时出错

任何帮助都是极好的!!

json.net deserialization c#-4.0

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

REST Assured - 通用列表反序列化

假设我有一个Java Person类:

class Person {
    String name;
    String email;
}
Run Code Online (Sandbox Code Playgroud)

使用REST Assured,您可以反序列化此JSON对象

{"name":"Bob", "email":"bob@email.com"} 
Run Code Online (Sandbox Code Playgroud)

使用的Java Person实例

Person bob = given().when().get("person/Bob/").as(Person.class);
Run Code Online (Sandbox Code Playgroud)

如何使用REST Assured反序列化此JSON数组

[{"name":"Bob", "email":"bob@email.com"}, 
 {"name":"Alice", "email":"alice@email.com"}, 
 {"name":"Jay", "email":"jay@email.com"}]
Run Code Online (Sandbox Code Playgroud)

变成了List<Person>?例如,这将是方便的:

List<Person> persons = given().when().get("person/").as(...);
Run Code Online (Sandbox Code Playgroud)

java arrays json deserialization rest-assured

43
推荐指数
6
解决办法
2万
查看次数

将Xml反序列化为对象时出错 - 不期望xmlns =''

我在尝试反序列化某些XML时遇到了麻烦,希望有人可以提供一些帮助.我已经阅读了很多类似的帖子,但我无法解决这个问题.

XML我试图反序列化

<register-account success="false">
  <user-name>xxxxx</user-name>
  <password>fghgh</password>
  <email>test@example.com</email>
  <error>
    <errorcode>120</errorcode>
    <errormessage>The password is invalid</errormessage>
  </error>
</register-account>
Run Code Online (Sandbox Code Playgroud)

我正在尝试将反序列化为:

[Serializable, XmlRoot(ElementName = "register-account", Namespace = "MyNamespace")]
[XmlType("register-account")]
public class RegisterAccountResponse
{
    [XmlAttribute("success")]
    public bool Success { get; set; } 

    /// <summary>
    /// Gets or sets the Tennant email address
    /// </summary>
    [XmlElement("email")]
    public string Email { get; set; }

    /// <summary>
    /// Gets or sets the tennant password
    /// </summary>
    [XmlElement("password")]
    public string Password { get; set; }

    /// <summary>
    /// Gets or …
Run Code Online (Sandbox Code Playgroud)

.net c# xml serialization deserialization

42
推荐指数
1
解决办法
9万
查看次数

如何使用JSON.NET反序列化为嵌套/递归的Dictionary和List?

我需要将复杂的JSON blob反序列化为标准的.NET容器,以便在不了解JSON的代码中使用.它期望的事情是在标准的.NET类型,具体地Dictionary<string, object>List<object>其中"对象"可以是原语或递归(词典或列表).

我不能使用静态类型来映射结果,并且JObject/JToken不适合.理想情况下,有一些方法(通过Contracts可能?)将原始JSON转换为基本的.NET容器.

我一直在寻找任何方式来哄骗JSON.NET反序列化器在遇到"{}"或"[]"时创建这些简单类型,但收效甚微.

任何帮助赞赏!

.net json json.net deserialization

42
推荐指数
3
解决办法
2万
查看次数

找不到[简单类型,类com.comcast.ivr.core.domain.AutoHandlingSlotKey]类型的(Map)密钥反序列化器

我有一个具有Map的域对象:

private Map<AutoHandlingSlotKey, LinkedHashSet<AutoFunction>> autoHandling;
Run Code Online (Sandbox Code Playgroud)

当我序列化对象时,我得到了这个:

"autoHandling" : [ "java.util.HashMap", {
} ],
Run Code Online (Sandbox Code Playgroud)

这个Map的关键是一个自定义对象:

public class AutoHandlingSlotKey implements Serializable {
    private FunctionalArea slot; // ENUM
    private String returnView;   // ENUM
Run Code Online (Sandbox Code Playgroud)

所以,我不确定如何纠正我在反序列化对象时遇到的这个问题:

org.codehaus.jackson.map.JsonMappingException: Can not find a (Map) Key deserializer for type [simple type, class com.comcast.ivr.core.domain.AutoHandlingSlotKey]
Run Code Online (Sandbox Code Playgroud)

如果我没有访问域对象进行修改,有人可以帮助我理解如何纠正这个问题吗?

java json jackson deserialization

41
推荐指数
2
解决办法
4万
查看次数

jQuery反序列化表单

我正在使用jQuery Serialize来序列化我的表单元素,并希望将它们反序列化.不幸的是找不到任何有效的jQuery反序列化器,有什么建议吗?

javascript jquery deserialization

39
推荐指数
5
解决办法
6万
查看次数

使用JSON.NET将异构JSON数组反序列化为协变List <>

我有一个JSON数组,包含具有不同属性的不同类型的对象.其中一个属性称为"类型",它确定数组项的类型.以下是我的数据示例:

   [{
        type : "comment",
        text : "xxxx"
    }, {
        type : "code",
        tokens : [{
                type : "ref",
                data : "m"
            }, {
                type : "operator",
                data : "e"
            }
        ]
    }, {
        type : "for",
        boundLocal : {
            type : "local",
            name : "i",
            kind : "Number"
        },
        upperBound : {
            type : "ref",
            tokens : [{
                    type : "operator",
                    data : "3"
                }, {
                    type : "operator",
                    data : "0"
                }
            ]
        },
        body : [{
                type …
Run Code Online (Sandbox Code Playgroud)

c# json json.net deserialization

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

Newtonsoft JSON - 动态对象

我正在使用Newtonsoft JSON库对传入的原始JSON执行动态反序列化,并且发现了一些我无法解释的内容.

起点是以下JSON字符串:

{
  "task": {
    "dueDate": "2012-12-03T00:00:00"
  }
}
Run Code Online (Sandbox Code Playgroud)

那里没什么太复杂的......

在代码我然后这样做:

var dyn = JsonConvert.DeserializeObject<dynamic>(rawJson);
DateTime dueDate = dyn.task.dueDate.Value;
Run Code Online (Sandbox Code Playgroud)

这段代码已经存在好几个月并且工作正常,但是在最近的测试版本中我们看到了以下错误:

'Newtonsoft.Json.Linq.JObject'不包含'task'的定义

堆栈跟踪:在System.Dynamic.UpdateDelegates.UpdateAndExecute1 [T0,TRet]的CallSite.Target(Closure,CallSite,Object)处(CallSite站点,T0 arg0)

现在这是奇怪的,如果我改变上面的代码,一切都开始工作了:

DateTime dueDate = dyn.task.dueDate.Value;
Run Code Online (Sandbox Code Playgroud)

DateTime dueDate = dyn["task"]["dueDate"].Value;
Run Code Online (Sandbox Code Playgroud)

所以,虽然这是"固定的",但我不明白为什么这会解决它以及可能的原因.有没有人有任何想法

c# json dynamic json.net deserialization

39
推荐指数
2
解决办法
6万
查看次数

杰克逊杰森并没有这样的方法错误

我正在尝试使用jackson序列化和反序列化POJO.从POJO到JSON的工作非常完美,但是朝另一个方向发展却并非如此.

我有一个POJO

public class Event {
  private String kind;

  public String getKind() {
    return kind;
  }

  public void setKind(String kind) {
    this.kind = kind;
  }
}
Run Code Online (Sandbox Code Playgroud)

并运行和测试我运行包calendar.model;

Event event = new Event();
event.setKind("This is a kind");
String json = objectMapper.writeValueAsString(event); 
// RETURNS: "{\"kind\":\"This is a kind\"}"

objectMapper.readValue(json, Event.class);
Run Code Online (Sandbox Code Playgroud)

抛出异常

java.lang.NoSuchMethodError: com.fasterxml.jackson.core.JsonParser.getValueAsString()Ljava/lang/String;
at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:24)
at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:11)
at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:375)
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:98)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:308)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:121)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2796)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:1942)
at calendar.controller.RootController.details(RootController.java:59)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219) …
Run Code Online (Sandbox Code Playgroud)

java json jackson deserialization

39
推荐指数
1
解决办法
8万
查看次数