我真的很挣扎反序列化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