Ottenere un errore di parser quando si tenta di serializzare un array ulong, sembra che la libreria Json.NET non stia controllando se il numero intero è firmato o non firmato; qualcuno sa di una soluzione alternativa per questo? o qualsiasi altra libreria .NET Json in grado di gestire int unsigned?Json.NET si arresta in modo anomalo durante la serializzazione di array interi non numerati (ulong)
* MODIFICA: codice sotto; * Serializza bene, ma quando deserializza genera un errore; Sembra che non soddisfi l'int unsigned guardando la traccia dello stack;
NewTonsoft.Json.JsonReaderException : {"JSON integer 18446744073709551615 is too large or small for an Int64."}
Value was either too large or too small for an Int64.
at System.Number.ParseInt64(String value, NumberStyles options, NumberFormatInfo numfmt)
at System.Convert.ToInt64(String value, IFormatProvider provider)
at Newtonsoft.Json.JsonTextReader.ParseNumber() in d:\Development\Releases\Json\Working\Src\Newtonsoft.Json\JsonTextReader.cs:line 1360
class Program
{
static void Main(string[] args)
{
string output = JsonConvert.SerializeObject(new ulong[] {ulong.MinValue, 20, 21, 22, ulong.MaxValue});
Console.WriteLine(output);
ulong[] array = JsonConvert.DeserializeObject<ulong[]>(output);
Console.WriteLine(array);
Console.ReadLine();
}
}
Qual è l'errore esatto che stai ottenendo? Puoi anche pubblicare la traccia dello stack, insieme ai bit rilevanti del tuo codice? – svick
Probabilmente è il tuo codice. Perché non lo pubblichi? –
Ho appena postato il codice –