标签: serialization

如何序列化lambda?

我怎样才能优雅地序列化lambda?

例如,下面的代码抛出一个NotSerializableException.如何在不创建SerializableRunnable"虚拟"界面的情况下修复它?

public static void main(String[] args) throws Exception {
    File file = Files.createTempFile("lambda", "ser").toFile();
    try (ObjectOutput oo = new ObjectOutputStream(new FileOutputStream(file))) {
        Runnable r = () -> System.out.println("Can I be serialized?");
        oo.writeObject(r);
    }

    try (ObjectInput oi = new ObjectInputStream(new FileInputStream(file))) {
        Runnable  r = (Runnable) oi.readObject();
        r.run();
    }
}
Run Code Online (Sandbox Code Playgroud)

java lambda serialization java-8

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

将对象序列化为JavaScript/jQuery中的查询字符串

我正在尝试查找有关如何序列化对象以查询字符串格式的信息,但我的所有搜索都在结果中淹没了如何以其他方式(字符串/表单/任何JSON).

我有

{ one: 'first', two: 'second' }
Run Code Online (Sandbox Code Playgroud)

而且我要

?one=first&two=second
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?我不介意插件或其他东西 - 如果我发现的代码不是插件,我可能会重新写一个...

javascript jquery serialization query-string

149
推荐指数
3
解决办法
14万
查看次数

是否可以将XML反序列化为List <T>?

给出以下XML:

<?xml version="1.0"?>
<user_list>
   <user>
      <id>1</id>
      <name>Joe</name>
   </user>
   <user>
      <id>2</id>
      <name>John</name>
   </user>
</user_list>
Run Code Online (Sandbox Code Playgroud)

以下课程:

public class User {
   [XmlElement("id")]
   public Int32 Id { get; set; }

   [XmlElement("name")]
   public String Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

是否可以使用XmlSerializer将xml反序列化为List<User>?如果是这样,我需要使用哪种类型的附加属性,或者我需要使用哪些其他参数来构造XmlSerializer实例?

User[]如果有点不太可取的话,array()是可以接受的.

c# serialization xml-serialization xml-deserialization

147
推荐指数
6
解决办法
13万
查看次数

如何将对象序列化为字符串

我能够将一个对象序列化为一个文件然后再次恢复它,如下一个代码片段所示.我想将对象序列化为字符串并存储到数据库中.谁能帮我?

LinkedList<Diff_match_patch.Patch> patches = // whatever...
FileOutputStream fileStream = new FileOutputStream("foo.ser");
ObjectOutputStream os = new ObjectOutputStream(fileStream);
os.writeObject(patches1);
os.close();

FileInputStream fileInputStream = new FileInputStream("foo.ser");
ObjectInputStream oInputStream = new ObjectInputStream(fileInputStream);
Object one = oInputStream.readObject();
LinkedList<Diff_match_patch.Patch> patches3 = (LinkedList<Diff_match_patch.Patch>) one;
os.close();
Run Code Online (Sandbox Code Playgroud)

java serialization

145
推荐指数
4
解决办法
21万
查看次数

什么时候应该实现Serializable接口?

public class Contact implements Serializable {
    private String name;
    private String email;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}
Run Code Online (Sandbox Code Playgroud)
  1. Serializable什么时候应该实现界面?
  2. 我们为什么这样做?
  3. 它是否具有任何优势或安全性?

java serialization

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

如何在Django中序列化模型实例?

有很多关于如何序列化模型查询集的文档,但是如何将模型实例的字段序列化为JSON?

python django serialization json django-models

140
推荐指数
10
解决办法
12万
查看次数

如何JSON序列化集?

我有一个set包含对象__hash____eq__方法的Python ,以确保集合中不包含任何重复项.

我需要对这个结果进行json编码set,但是将一个空值传递set给该json.dumps方法会引发一个问题TypeError.

  File "/usr/lib/python2.7/json/encoder.py", line 201, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "/usr/lib/python2.7/json/encoder.py", line 264, in iterencode
    return _iterencode(o, 0)
  File "/usr/lib/python2.7/json/encoder.py", line 178, in default
    raise TypeError(repr(o) + " is not JSON serializable")
TypeError: set([]) is not JSON serializable
Run Code Online (Sandbox Code Playgroud)

我知道我可以创建一个json.JSONEncoder具有自定义default方法的类的扩展,但我甚至不确定从哪里开始转换set.我应该set使用默认方法中的值创建字典,然后返回编码吗?理想情况下,我想使默认方法能够处理原始编码器所扼杀的所有数据类型(我使用Mongo作为数据源,所以日期似乎也引发了这个错误)

任何暗示正确的方向将不胜感激.

编辑:

谢谢你的回答!也许我应该更精确.

我在这里使用(和upvoted)答案来解决set被翻译的限制,但是内部键也是一个问题.

这些对象set是转换为的复杂对象__dict__,但它们本身也可以包含其属性的值,这些值可能不适用于json编码器中的基本类型.

这里有很多不同的类型set,哈希基本上计算了实体的唯一ID,但是在NoSQL的真正精神中,没有确切知道子对象包含的内容.

一个对象可能包含日期值 …

python serialization json set

138
推荐指数
9
解决办法
19万
查看次数

Json.NET能否对流进行序列化/反序列化?

我听说Json.NET比DataContractJsonSerializer更快,想试一试......

但我在JsonConvert上找不到任何采用流而不是字符串的方法.

例如,为了在WinPhone上反序列化包含JSON的文件,我使用以下代码将文件内容读入字符串,然后反序列化为JSON.在我的(非常临时)测试中,使用DataContractJsonSerializer直接从流中反序列化似乎要慢4倍...

// DCJS
DataContractJsonSerializer dc = new DataContractJsonSerializer(typeof(Constants));
Constants constants = (Constants)dc.ReadObject(stream);

// JSON.NET
string json = new StreamReader(stream).ReadToEnd();
Constants constants = JsonConvert.DeserializeObject<Constants>(json);
Run Code Online (Sandbox Code Playgroud)

我做错了吗?

.net serialization json.net

137
推荐指数
5
解决办法
14万
查看次数

在PyTorch中保存训练模型的最佳方法?

我正在寻找在PyTorch中保存训练模型的替代方法.到目前为止,我找到了两种选择.

  1. torch.save()保存模型,torch.load()加载模型.
  2. model.state_dict()用于保存训练有素的模型,而model.load_state_dict()用于加载已保存的模型.

我已经讨论过这种讨论,其中建议方法2优于方法1.

我的问题是,为什么第二种方法更受欢迎?是否因为torch.nn模块具有这两个功能而我们被鼓励使用它们?

python serialization deep-learning pytorch tensor

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

使用Rails序列化将哈希保存到数据库

我试图在我的rails应用程序中将哈希映射ID保存到多次尝试中.我迁移到数据库以适应这个新列:

class AddMultiWrongToUser < ActiveRecord::Migration
  def self.up
    add_column :users, :multi_wrong, :string
  end

  def self.down
    remove_column :users, :multi_wrong
  end
end
Run Code Online (Sandbox Code Playgroud)

在我的模型中,我有:

class User < ActiveRecord::Base 
 serialize :multi_wrong, Hash
end
Run Code Online (Sandbox Code Playgroud)

但是,当我使用rails控制台通过执行以下操作来测试时:

user = User.create()
user.multi_wrong = {"test"=>"123"}
user.save
Run Code Online (Sandbox Code Playgroud)

输出为false.这里出了什么问题?

ruby serialization activerecord ruby-on-rails

135
推荐指数
3
解决办法
9万
查看次数