Я использую Newtosoft. Json Библиотека. Вот пример моего класса.
public class TableItemsClass
{
public int InventoryTransTempID { get; set; }
public string Description { get; set; }
public string Extras { get; set; }
public decimal Quantity { get; set; }
public decimal ItemPrice { get; set; }
public decimal TotalPrice { get; set; }
public decimal SumPrice { get; set; }
public decimal SumDisPrice { get; set; }
public int Situation { get; set; }
public string TemporaryText { get; set; }
public bool TableIsClosed { get; set; }
public decimal KitchenQuantity { get; set; }
public string KitchenTime { get; set; }
public int InventoryItemID { get; set; }
}
Я отправляю свои данные через http-клиент. Поэтому я использую функцию.
var jsonString1 = JsonConvert.SerializeObject(mItems);
Итак, мой вопрос, стоит ли высокая производительность и скорость для использования GZip после сериализации моей строки? Или json автоматически сжимает мою строку при отправке запроса через http-клиент?
var client = new HttpClient();
await client.PostAsync("https://www.ddd.com",new StringContent( jsonString1,Encoding.UTF8,"application/json"));
Стоит ли использовать пример GZip
var jsonString1 = Zip(JsonConvert.SerializeObject(mItems));
public static void CopyTo(Stream src, Stream dest)
{
byte[] bytes = new byte[4096];
int cnt;
while ((cnt = src.Read(bytes, 0, bytes.Length)) != 0)
{
dest.Write(bytes, 0, cnt);
}
}
public static byte[] Zip(string str)
{
var bytes = Encoding.UTF8.GetBytes(str);
using (var msi = new MemoryStream(bytes))
using (var mso = new MemoryStream())
{
using (var gs = new GZipStream(mso, CompressionMode.Compress))
{
//msi.CopyTo(gs);
CopyTo(msi, gs);
}
return mso.ToArray();
}
}
Также есть ли способ удалить повторяющиеся значения ключа foreach свойство? Для перерисовки длины моей строки?