Khi sử dụng JSON.Net để sắp xếp/deserialize cấu trúc, kiểu cấu trúc dựng sẵn (như System.Drawing.Size) tuần tự hóa thành chuỗi, trong khi kiểu cấu trúc tùy chỉnh tuần tự hóa thành đối tượng JSON.Sự khác biệt tuần tự hóa cấu trúc JSON.Net
Ví dụ:
using System;
using System.Drawing;
using Newtonsoft.Json;
namespace TestJsonNet
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(JsonConvert.SerializeObject(new Size(50, 50)));
Console.WriteLine(JsonConvert.SerializeObject(new Size2(50, 50)));
}
}
struct Size2
{
public int Width { get; set; }
public int Height { get; set; }
public Size2(int w, int h) : this()
{
Width = w; Height = h;
}
}
}
đầu ra như sau:
"50, 50"
{"Width":50,"Height":50}
tôi có thể hiểu được những suy nghĩ đằng sau serializing một struct thành một chuỗi, vì cách bố trí bộ nhớ luôn là như nhau; Tuy nhiên, tại sao sự khác biệt khi serializing một cấu trúc tùy chỉnh?
Ngoài ra, tôi sẽ (vì lý do di sản nội bộ), muốn có các cấu trúc tuần tự JSON.Net giống như trường hợp sau (tức là JSON, không phải chuỗi). Nếu có thể, làm thế nào có thể đạt được?
tôi đã tìm thấy bài viết này [JSON.NET serialization rắc rối] (http://stackoverflow.com/questions/9750836/json-net-serialization-trouble) Tuy nhiên, tôi vẫn muốn tắt hành vi này cho tất cả các loại cấu trúc tại một ngã swoop. –