【问题标题】:How can I seralilze a value in C# to store in a mySql database that WordPress can deserialize?如何将 C# 中的值序列化以存储在 WordPress 可以反序列化的 mySql 数据库中?
【发布时间】:2013-04-09 01:07:48
【问题描述】:

我正在构建一个更新 WordPress 数据库的应用程序; WordPress 在其某些字段中存储序列化值。我需要序列化值并将它们存储在 WordPress 中,以便 WordPress 仍然可以正常反序列化它们,就好像数据是直接输入到 WordPress 中一样。

有人知道怎么做吗?

这是一个在 mySql 中将值存储为序列化数据的示例: _voucherLocations = a:5:{i:0;s:3:"全部";i:1;s:0:"";i:2;s:0:"";i:3;s:0:" ";i:4;s:0:"";}

我在 WordPress 表单中输入的内容是“全部” 当有人在我的 WinForms 表单中输入“全部”时,它必须以与上面在 mySql 数据库中看到的方式相同的方式存储,以便我在 WordPress 中使用的主题能够识别它并可以使用它。希望这很清楚。

我将 C# 与 Entity Framework 5 和 Microsoft 在 WinForms 应用程序中提供的最新 mySQL 数据适配器一起使用。顺便说一句,如果有人这样做并在尝试执行任何插入、更新或删除操作时遇到异常,那是因为 Entity Framework 将 mySQL 中的标识整数更改为无符号十进制;我不得不手动进入整个实体框架生成的代码,并将所有这些错误的数据声明从无符号十进制更改为 bigint。只是提醒任何尝试它的人。

【问题讨论】:

    标签: c# mysql wordpress serialization


    【解决方案1】:

    PHP 有特殊功能to serialize and deserialize data,它不是 JSON。我只知道一个库可以在 .NET 中序列化和反序列化这些数据:csphpserial

    【讨论】:

    • 太棒了——csphpserial 的格式正确。它似乎将结果包装在另一个数组中。示例:a:5:{i:0;s:3:"全部";i:1;s:0:"";i:2;s:0:"";i:3;s:0:" ";i:4;s:0:"";} 并使用 csphpserial 对其进行反序列化,它返回 "All" 但是一个 5 元素数组列表,第一项为 "All",其他 4 项为 "",序列化得到上面显示的结果相同,但它在前面附加了这个(虽然最后是最后一个括号) a:1:{s:0:"";} 所以结果看起来像这样:a:1:{s:0:" ";a:5:{i:0;s:3:"全部";i:1;s:0:"";i:2;s:0:"";i:3;s:0:" ";i:4;s:0:"";}} 知道如何去掉多余的位吗?
    【解决方案2】:

    我会为此使用其中一个 JSON 库。与 ASP.NET MVC 一起提供的一种流行的方法是 Json.NET,它可以作为 NuGet 包进行安装,如下所示:

    PM> Install-Package Newtonsoft.Json
    

    您也可以尝试另一个越来越受欢迎的库,ServiceStack Text

    PM> Install-Package ServiceStack.Text
    

    【讨论】:

      【解决方案3】:

      看起来它只是 JSON 序列化。您应该能够在 C# 中轻松做到这一点。

      看看JSON.NET

      【讨论】:

        猜你喜欢
        • 2012-07-28
        • 1970-01-01
        • 2016-07-17
        • 2010-09-08
        • 2010-11-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-03
        相关资源
        最近更新 更多