Trong mã của tôi, tôi phải Json serialize một đối tượng CookieCollection và vượt qua nó như chuỗi, để đạt được điều này tôi làm như thế này:Deserialize một json serialized CookieCollection
var json = Newtonsoft.Json.JsonConvert.SerializeObject(resp.Cookies);
dẫn đến json sau
[
{
"Comment": "",
"CommentUri": null,
"HttpOnly": false,
"Discard": false,
"Domain": "www.site.com",
"Expired": true,
"Expires": "1970-01-01T03:30:01+03:30",
"Name": "version",
"Path": "/",
"Port": "",
"Secure": false,
"TimeStamp": "2015-06-01T12:19:46.3293119+04:30",
"Value": "deleted",
"Version": 0
},
{
"Comment": "",
"CommentUri": null,
"HttpOnly": false,
"Discard": false,
"Domain": ".site.com",
"Expired": false,
"Expires": "2015-07-31T12:19:48+04:30",
"Name": "ADS_7",
"Path": "/",
"Port": "",
"Secure": false,
"TimeStamp": "2015-06-01T12:19:46.3449217+04:30",
"Value": "0",
"Version": 0
}
]
để deserialize json này tôi muốn làm một cái gì đó như thế này:
var cookies = Newtonsoft.Json.JsonConvert.DeserializeObject<CookieCollection>(json);
Nhưng nó không thành công và nâng cao JsonSerializationException nói
Không thể tạo và cư danh sách loại System.Net.CookieCollection. Con đường '', dòng 1, vị trí 1.
Vì vậy, tôi đã thay đổi mã của tôi như sau và làm việc của nó bây giờ
var tmpcookies = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Cookie>>(json);
CookieCollection cookies = new CookieCollection();
tmpcookies.ForEach(cookies.Add);
Tôi chỉ tự hỏi tại sao nỗ lực đầu tiên của tôi không? và nếu có cách nào tốt hơn để làm điều đó.
Khi http://stackoverflow.com/questions/27449717/newtonsoft-json-cannot-create-and-populate-list-type nói ... Hãy thử sử dụng Danh sách thay vì CookieCollection. Bạn có thể chuyển đổi nó thành danh sách theo Danh sách cookieList = cookieCollection.OfType () .ToList(); –
@PaulZahra Tôi đã có nó như Danh sách! câu hỏi của tôi là tại sao 'Newtonsoft.Json.JsonConvert.DeserializeObject (json); 'không thành công! –
HadiRj
Cookie CookieCollection = new CookieCollection(); giống như Danh sách? –