Làm cách nào để lấy một đối tượng và chuyển đổi nó thành chuỗi JSON và sau đó quay lại đối tượng đó từ một chuỗi, cụ thể, trong WinRT cho ứng dụng Windows 8 Metro của tôi?Làm cách nào để de/serialize JSON trong WinRT?
17
A
Trả lời
38
Như thế này:
using System.IO;
using System.Runtime.Serialization.Json;
using System.Text;
public static T Deserialize<T>(string json)
{
var _Bytes = Encoding.Unicode.GetBytes(json);
using (MemoryStream _Stream = new MemoryStream(_Bytes))
{
var _Serializer = new DataContractJsonSerializer(typeof(T));
return (T)_Serializer.ReadObject(_Stream);
}
}
public static string Serialize(object instance)
{
using (MemoryStream _Stream = new MemoryStream())
{
var _Serializer = new DataContractJsonSerializer(instance.GetType());
_Serializer.WriteObject(_Stream, instance);
_Stream.Position = 0;
using (StreamReader _Reader = new StreamReader(_Stream))
{ return _Reader.ReadToEnd(); }
}
}
5
Đầu tiên tạo ra C# lớp học với http://json2csharp.com/ Sau đó sử dụng http://james.newtonking.com/pages/json-net.aspx cho phân tích
lớp người sử dụng tôi hiện trông như thế này:
public class User
{
public string id { get; set; }
public string username { get; set; }
public string full_name { get; set; }
public string profile_picture { get; set; }
public string bio { get; set; }
public string website { get; set; }
public Counts counts { get; set; }
public static User SingleFromJSON(string jsonString)
{
return JsonConvert.DeserializeObject<SingleUser>(jsonString).data;
}
public static User MultipleFromJSON(string jsonString)
{
return JsonConvert.DeserializeObject<SingleUser>(jsonString).data;
}
private class SingleUser
{
public User data { get; set; }
}
private class MultipleUsers
{
public List<User> data { get; set; }
}
}
public class Counts
{
public int media { get; set; }
public int follows { get; set; }
public int followed_by { get; set; }
}
siêu dễ dàng: D
+0
Đó là một cách khác, chắc chắn. Không phải ai cũng thích thư viện bên ngoài như thế. Nhưng json.net được tôn trọng. (va nhanh nhẹn) –
Các vấn đề liên quan
- 1. Làm thế nào để Deserialize JSON Array?
- 2. Làm cách nào để Deserialize dữ liệu JSON?
- 3. jquery làm thế nào để deserialize đối tượng json
- 4. Làm cách nào để deserialize đối tượng json và gán cho một NSDictionary trong iOS
- 5. NancyFX: Deserialize JSON
- 6. Deserialize JSON với C#
- 7. VB.net JSON Deserialize
- 8. deserialize JSON để đối tượng JAVASCRIPT
- 9. Sử dụng JSON để serialize/deserialize TimeSpan
- 10. Deserialize chuỗi JSON để C# đối tượng
- 11. Deserialize JSON to Java enum
- 12. Làm thế nào để deserialize một mảng JSON bằng cách sử dụng Gson
- 13. Deserialize JSON Objects trong Asp.Net MVC Controller
- 14. Deserialize & Serialize trong JSON là gì,
- 15. Làm thế nào để serialize/deserialize trường hợp lớp học đến/từ Json trong Play 2.1
- 16. Làm thế nào để deserialize chuỗi json phản đối danh sách trong C# dot
- 17. Làm thế nào để deserialize json với từ điển lồng nhau?
- 18. deserialize một mảng json bằng cách sử dụng xstream
- 19. Jackson Deserialize Variable như Json Chuỗi
- 20. Net simplejson: Deserialize JSON để đối tượng năng động
- 21. Deserialize nhân vật json như liệt kê
- 22. Jackson - Làm thế nào để xử lý (deserialize) JSON lồng nhau?
- 23. Deserialize JSON vào từ điển sử dụng LINQ to JSON
- 24. C# .net làm thế nào để deserialize đối tượng phức tạp của JSON
- 25. Làm thế nào để deserialize JSON đối tượng từ HttpResponse sử dụng chú thích Jackson?
- 26. Làm thế nào để TILE một hình nền trong WinRT?
- 27. Làm thế nào để thêm một mảng trong WinRT XAML
- 28. Làm thế nào tôi có thể deserialize một chuỗi JSON trong Mono?
- 29. Deserialize JSON không hoạt động với JSON.NET
- 30. Làm thế nào để deserialize JSON tập tin bắt đầu với một mảng ở Jackson?
DataContractJsonSerializer yêu cầu các lớp và thành viên được đánh dấu bằng DataContract và DataMember. Json.net thì không. Trước đây là an toàn hơn vì không phải tất cả các lớp học có thể được xây dựng lại hoàn toàn từ tài sản của họ một mình. Sau này là nhanh hơn bởi vì bạn không luôn luôn kiểm soát các đối tượng bạn đang serializing và tạo ra một lớp trung gian serializable mất một chút thời gian hơn. – Tristan