我真的很掙扎反序列化ASP.NET json編碼的字符串。反序列化一個PHP json編碼(json_encode)字符串與ASP.NET webservices
我在PHP端使用nusoap和CakePHP 1.3,在web服務端使用mvc.net 4.0,一切正常。然而,我不知道如何傳遞一個複雜的數組作爲web服務的一個參數,所以我想到了將它序列化爲json並傳遞一個簡單的字符串。到目前爲止好...
但我不能爲我的生命去序列化ASP.NET的json_encoded串;
[好,我一直在嘗試,至少在最後兩小時)]以下是我迄今爲止:
的PHP發送的產品的陣列(產品ID作爲GUID - 發送作爲字符串然後轉換web服務上的一側)和產品數量:
$args['products'] = json_encode($booking['Booking']['prs_products']);
這是作爲以下json字符串(產品)通過web服務收到:
[{ 「BookingProducts」:{ 「ID」: 「2884f556-67ed-4eb8-98ca-a99dc27a2665」, 「數量」:2}},{ 「BookingProducts」:{ 「ID」:「f57854ba- 0a9b-400b-bea0-bafdcb179b01「,」quantity「:2}},{」BookingProducts「:{」id「:」7ff81128-c33c-4e6c-a33c-3ca40ccfb5d0「,」quantity「:2}}]
然後我嘗試填充BookingProducts列表<>。所述BookingProducts類如下:
public class BookingProducts
{
public String id { get; set; }
public int quantity { get; set; }
public BookingProducts()
{
}
public BookingProducts(string id, int quantity)
{
this.id = id;
this.quantity = quantity;
}
}
我試圖既[System.Web.Script.Serialization] [2]和Newtonsoft.Json庫如下,但沒有成功:
List<BookingProducts> productsList = new List<BookingProducts>();
try
{
productsList = JsonConvert.DeserializeObject<List<BookingProducts>>((products));
}
catch (Newtonsoft.Json.JsonSerializationException)
{
productsList = new JavaScriptSerializer().Deserialize<List<BookingProducts>>(products);
}
在這兩種我得到一個空產品清單(或序列化例外)。
希望以前有人做過這個,或者可以發現一個明顯的錯誤!
完美!非常感謝你:) – invosoft 2011-02-23 14:48:16
http://www.newtonsoft.com/json你也可以使用這個庫文件 – jewelhuq 2016-07-16 18:11:05