标签: object-serialization

php如何序列化对象数组?

我有一个名为'Call'的小类,我需要将这些调用存储到一个平面文件中.我创建了另一个名为"CallStorage"的类,其中包含一个数组,我将这些调用放入其中.

我的问题是我想将这个数组存储到磁盘上,以便稍后再读回来并从该数组中获取调用.

我试图使用serialize()和unserialize()实现这一点,但这些似乎有点奇怪,部分信息丢失了.

这就是我正在做的事情:

//write array to disk
$filename = $path . 'calls-' . $today;
$serialized = serialize($this->array);
$fp = fopen($filename, 'a');
fwrite($fp, $serialized);
fclose($fp);

//read array from serialized file

$filename = $path . 'calls-' . $today;
if (file_exists($filename)) {
    $handle = fopen($filename, 'r');
    $contents = fread($handle, filesize($filename));
    fclose($handle);
    $unserialized = unserialize($contents);
    $this->setArray($unserialized);
}
Run Code Online (Sandbox Code Playgroud)

有人能看出我做错了什么,或者是什么.我还试图序列化并编写包含普通字符串的数组.我没有设法让它工作..我有一个Java背景,所以我只是不明白为什么我不能只是将数组写入磁盘,如果它被序列化.:)

php arrays serialization object-serialization

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

对象序列化

假设对象A有6个字段,现在对象A被序列化,经过一段时间后,再添加3个字段并对对象进行反序列化.

  1. 添加新字段将在反序列化时创建任何异常.
  2. 如何具有向后兼容性

c# object-serialization

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

如何对MVC 3应用程序执行表单POST并获取反序列化的类?

我有以下表格:

<form id="MakeDocumentForm" name="MakeDocumentForm" 
      action="Document/GetWordDocument" method="post" 
      enctype="application/json">

    <button type="submit" style="float:right;">Make Word Document</button> 
    <textarea id="hiddenJson" 
              name="hiddenJson" 
              data-bind="text: ko.toJSON(viewModel.selectedDocument)" 
              rows="5" cols="100" 
              style="visibility:hidden;" >
    </textarea>

</form>
Run Code Online (Sandbox Code Playgroud)

data-bind属性是knockoutjs - 但这并不重要,textarea正确包含作为序列化对象的JSON.

[HttpPost]
public void GetWordDocument(DocumentModel hiddenJson)
{
   //hiddenJson is not a correctly populated instance of my DocumentModel class
   //any MVC experts know what I am doing wrong?
}
Run Code Online (Sandbox Code Playgroud)

现在,我如何对MVC 3应用程序执行表单POST并获取反序列化的类?

asp.net-mvc post object-serialization knockout.js

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

可序列化对象属性

当我Serializable在课堂上时,是否需要添加Serializable到班级中的所有对象?

例如,

public class User implements Serializable{

private List<Role> role;
private Task task;
}
Run Code Online (Sandbox Code Playgroud)

我是否需要添加SerializableRoleTask,太?

public class Task implements Serializable{
    // ...
}

public class Role implements Serializable{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

java serializable object-serialization

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

PHP对象序列化的安全性如何,是否可以安全地传递页面?(使用phpXMLrpc)

基本上这就是我在做的事情:

我使用PHPXMLRPC与Odoo进行通信.

从本质上讲,我需要发送的每个请求都需要遵循以下结构:

//The database I wish to connect too
$msg->addParam(new xmlrpcval($this->dbname, "string"));

//The logged in user id
$msg->addParam(new xmlrpcval($this->userID, "int"));

//The logged in users password
$msg->addParam(new xmlrpcval($this->password, "string"));

//The model
$msg->addParam(new xmlrpcval("project.project", "string"));

//The method Im requesting to call
$msg->addParam(new xmlrpcval("read", "string")); 

//Query parameters
$msg->addParam(new xmlrpcval($id_list, "array")); 
$msg->addParam(new xmlrpcval($field_list, "array")); 
Run Code Online (Sandbox Code Playgroud)

现在我编写了一个类,在其构造函数中将实例变量设置为传递给其构造函数的值,即

class PHPClient{
   private $userName;
   private $password;
   private $dbname;
   private $server_url;
   private $userID;



public function __construct($server_url, $database, $user, $password)
{
    $this->server_url = $server_url;
    $this->dbname = $database;
    $this->userName = $user; …
Run Code Online (Sandbox Code Playgroud)

php security object-serialization odoo

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

如何将com或excel对象序列化为二进制格式,以便我可以将它存储在asp.net的内存流中

这是示例代码...但我得到了serializationException.

xlbook是对象,我想将此对象保存到memorystream.

unsafe public void Save(IStream stream, bool clearDirty, Excel.Workbook xlbook)
{
    try
    {
        //if (stream == null)
        //{
        //    return;
        //}
        //object data = xlbook;
        if (xlbook == null)
        {
            return;
        }
        // convert data to byteArray   


        MemoryStream memoryStream = new MemoryStream();
        BinaryFormatter binaryFormatter = new BinaryFormatter();
        //AppDomain currentDomain = AppDomain.CurrentDomain;                        
        //currentDomain.AssemblyResolve += new ResolveEventHandler(currentDomain_AssemblyResolve); 


  //here im getting exception.                        
        binaryFormatter.Serialize(memoryStream, xlbook);            
        byte[] bytes = memoryStream.ToArray();
        memoryStream.Close();
        //get memory pointer
        int cb;
        int* pcb = &cb;
        //save data
        byte[] arrayLen …
Run Code Online (Sandbox Code Playgroud)

c# asp.net assemblies memorystream object-serialization

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