Utf8Json
Utf8Json copied to clipboard
[Question]Handle Number field with 'null' value
For example. We have some apis like this
{
"num":1
}
And I have a type contains int num;
But some how,(due to server developing which I'm uncertain), our srever could possible to return value suchas
{
"num": null
}
then my client will throw a Exception.
I don't want to change all my types into nullable values , suchas int? num ,
By fix this issue , I changed codes follows:
public struct JsonReader
{
public long ReadInt64()
{
SkipWhiteSpace();
int readCount;
var v = NumberConverter.ReadInt64(bytes, offset, out readCount);
if (readCount == 0)
{
+ if (nullTokenSegment != ReadStringSegmentUnsafe())
throw CreateParsingException("Number Token");
}
offset += readCount;
return v;
}
}
The purpose is to check the value is null , so i can skip this value by defualt .
Is there a better way to solve the issue ?
I think the best way is to as Nullable
public class Test
{
[IgnoreDataMember]
public int Num { get; set; }
[DataMember(Name = "num")]
public int? RealNum
{
get
{
return this.Num;
}
set
{
this.Num = value.GetValueOrDefault();
}
}
}