2013-04-09 81 views
1

我正在構建一個更新WordPress數據庫的應用程序; WordPress在一些字段中存儲序列化的值。我需要序列化值並將它們存儲在WordPress中,這樣WordPress仍然可以像平常那樣反序列化它們,就好像數據直接在WordPress中輸入一樣。我如何在C#中存儲一個值以存儲在WordPress可以反序列化的mySql數據庫中?

有誰知道如何做到這一點?

以下是mySql中作爲序列化數據存儲值的示例: _voucherLocations = a:5:{i:0; s:3:「All」; i:1; s:0:「」; i: 2; s:0:「」; i:3; s:0:「」; i:4; s:0:「」;}

我在WordPress表格中輸入的全部是「All」 當某人在我的WinForms表單中輸入「All」,它必須以與上面在mySql數據庫中看到的相同的方式存儲,所以我在WordPress中使用的主題可以識別它並可以使用它。希望這是明確的。

我正在使用C#實體框架5和微軟提供的WinForms應用程序中的最新mySQL數據Adapater。順便說一句,如果有人這樣做,並在嘗試做任何插入,更新或刪除操作時得到異常,這是因爲實體框架將mySQL中的身份整數更改爲未分配的小數;我不得不手動進入整個Entity Framework生成的代碼,並將所有這些錯誤的數據聲明從無符號十進制變成bigint。只是一個人試圖嘗試它。

回答

0

PHP有特殊功能to serialize and deserialize data,它不是JSON。我知道只有一個庫,可以序列化和反序列化在.NET中的這些數據:csphpserial

+0

奇妙 - csphpserial格式正確。它似乎將結果包裝在另一個陣列中。 示例: a:5:{i:0; s:3:「All」; i:1; s:0:「」; i:2; s:0:「」; i:3; s: 0:「」; i:4; s:0:「」;} 並使用csphpserial將其反序列化,它返回「All」但是第一個項目中包含「All」且其他4中包含「All」的5元素數組列表,序列化得到了與上面相同的結果,但它附加在前面(儘管最後一個括號)a:1:{s:0:「」;}所以結果如下所示:a:1:{s 0: 「」;一個:5:{I:0; S:3: 「全部」; I:1; S:0: 「」; I:2; S:0: 「」; I:3; S :0:「」;我:4; S:0:「」;}}任何想法如何擺脫額外的位? – 2013-04-10 14:32:53

0

看起來這只是JSON序列化。您應該可以在C#中輕鬆完成此操作。

看一看JSON.NET

1

我會利用這個JSON的圖書館之一。詳情如下,安裝一個流行的一個附帶的ASP.NET MVC是Json.NET,可作爲一個的NuGet PACKE:

PM> Install-Package Newtonsoft.Json 

你也可以嘗試這是越來越受歡迎的另一個庫,ServiceStack Text

PM> Install-Package ServiceStack.Text 
相關問題