标签: serialization

保存对象(数据持久性)

我创建了一个像这样的对象:

company1.name = 'banana' 
company1.value = 40
Run Code Online (Sandbox Code Playgroud)

我想保存这个对象.我怎样才能做到这一点?

python serialization object save pickle

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

为什么要生成long serialVersionUID而不是简单的1L?

当类在Eclipse中实现Serializable时,我有两个选项:添加默认值serialVersionUID(1L)或生成serialVersionUID(3567653491060394677L).我认为第一个更酷,但很多时候我看到人们使用第二个选项.有没有理由生成long serialVersionUID

java serialization code-generation serialversionuid

204
推荐指数
6
解决办法
8万
查看次数

如何将TimeSpan序列化为XML

我试图将.NET TimeSpan对象序列化为XML,但它无法正常工作.一个快速谷歌建议,虽然TimeSpan是可序列化的,但XmlCustomFormatter它不提供将TimeSpan对象转换为XML或从XML 转换对象的方法.

一种建议的方法是忽略TimeSpan序列化,而是序列化结果TimeSpan.Ticks(并new TimeSpan(ticks)用于反序列化).一个例子如下:

[Serializable]
public class MyClass
{
    // Local Variable
    private TimeSpan m_TimeSinceLastEvent;

    // Public Property - XmlIgnore as it doesn't serialize anyway
    [XmlIgnore]
    public TimeSpan TimeSinceLastEvent
    {
        get { return m_TimeSinceLastEvent; }
        set { m_TimeSinceLastEvent = value; }
    }

    // Pretend property for serialization
    [XmlElement("TimeSinceLastEvent")]
    public long TimeSinceLastEventTicks
    {
        get { return m_TimeSinceLastEvent.Ticks; }
        set { m_TimeSinceLastEvent = new TimeSpan(value); }
    }
} …
Run Code Online (Sandbox Code Playgroud)

c# serialization timespan

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

将数组打印到文件

我想将数组打印到文件中.

我希望该文件看起来与这样的代码看起来完全相似.

print_r ($abc); 假设$ abc是一个数组.

是否有任何一行解决方案,而不是每个外观常规.

PS - 我目前使用序列化但我想使文件可读,因为序列化数组的可读性非常难.

php serialization

169
推荐指数
8
解决办法
32万
查看次数

在Swift中将Dictionary转换为JSON

我创建了下一个词典:

var postJSON = [ids[0]:answersArray[0], ids[1]:answersArray[1], ids[2]:answersArray[2]] as Dictionary
Run Code Online (Sandbox Code Playgroud)

我得到:

[2: B, 1: A, 3: C]
Run Code Online (Sandbox Code Playgroud)

那么,我怎样才能将它转换为JSON?

serialization json swift

169
推荐指数
10
解决办法
21万
查看次数

Django休息框架,在同一个ModelViewSet中使用不同的序列化器

我想提供两种不同的序列化器,但能够从以下所有设施中受益ModelViewSet:

  • 在查看对象列表时,我希望每个对象都有一个重定向到其详细信息的URL,并且使用__unicode __目标模型显示每个其他关系;

例:

{
  "url": "http://127.0.0.1:8000/database/gruppi/2/",
  "nome": "universitari",
  "descrizione": "unitn!",
  "creatore": "emilio",
  "accesso": "CHI",
  "membri": [
    "emilio",
    "michele",
    "luisa",
    "ivan",
    "saverio"
  ]
}
Run Code Online (Sandbox Code Playgroud)
  • 查看对象的详细信息时,我想使用默认值 HyperlinkedModelSerializer

例:

{
  "url": "http://127.0.0.1:8000/database/gruppi/2/",
  "nome": "universitari",
  "descrizione": "unitn!",
  "creatore": "http://127.0.0.1:8000/database/utenti/3/",
  "accesso": "CHI",
  "membri": [
    "http://127.0.0.1:8000/database/utenti/3/",
    "http://127.0.0.1:8000/database/utenti/4/",
    "http://127.0.0.1:8000/database/utenti/5/",
    "http://127.0.0.1:8000/database/utenti/6/",
    "http://127.0.0.1:8000/database/utenti/7/"
  ]
}
Run Code Online (Sandbox Code Playgroud)

我设法按照以下方式完成所有这些工作:

serializers.py

# serializer to use when showing a list
class ListaGruppi(serializers.HyperlinkedModelSerializer):
    membri = serializers.RelatedField(many = True)
    creatore = serializers.RelatedField(many = False)

    class Meta:
        model = models.Gruppi

# serializer …
Run Code Online (Sandbox Code Playgroud)

django serialization django-rest-framework

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

将类实例序列化为JSON

我正在尝试创建类实例的JSON字符串表示并且有困难.假设这个类是这样构建的:

class testclass:
    value1 = "a"
    value2 = "b"
Run Code Online (Sandbox Code Playgroud)

对json.dumps的调用是这样的:

t = testclass()
json.dumps(t)
Run Code Online (Sandbox Code Playgroud)

它失败并且告诉我测试类不是JSON可序列化的.

TypeError: <__main__.testclass object at 0x000000000227A400> is not JSON serializable
Run Code Online (Sandbox Code Playgroud)

我也尝试过使用pickle模块:

t = testclass()
print(pickle.dumps(t, pickle.HIGHEST_PROTOCOL))
Run Code Online (Sandbox Code Playgroud)

它提供类实例信息,但不提供类实例的序列化内容.

b'\x80\x03c__main__\ntestclass\nq\x00)\x81q\x01}q\x02b.'
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

python serialization json pickle

160
推荐指数
10
解决办法
25万
查看次数

我如何PHP-unserialize jQuery序列化的表单?

使用$('#form').serialize(),我能够将其发送到PHP页面.现在我如何在PHP中反序列化它?它是在jQuery中序列化的.

php jquery serialization

153
推荐指数
8
解决办法
19万
查看次数

将Stream转换为String并返回...我们缺少什么?

我想将对象序列化为字符串,然后返回.

我们使用protobuf-net将对象转换为Stream并成功返回.

但是,Stream to string and back ...不太成功.经过StreamToString并且StringToStream,新Stream的没有被protobuf-net反序列化; 它提出了一个Arithmetic Operation resulted in an Overflow例外.如果我们反序列化原始流,它可以工作.

我们的方法:

public static string StreamToString(Stream stream)
{
    stream.Position = 0;
    using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
    {
        return reader.ReadToEnd();
    }
}

public static Stream StringToStream(string src)
{
    byte[] byteArray = Encoding.UTF8.GetBytes(src);
    return new MemoryStream(byteArray);
}
Run Code Online (Sandbox Code Playgroud)

我们的示例代码使用这两个:

MemoryStream stream = new MemoryStream();
Serializer.Serialize<SuperExample>(stream, test);
stream.Position = 0;
string strout = StreamToString(stream);
MemoryStream result = (MemoryStream)StringToStream(strout);
var other = …
Run Code Online (Sandbox Code Playgroud)

.net c# serialization protobuf-net deserialization

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

如何序列化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万
查看次数