Utf8JsonV2
Utf8JsonのV2化を試しているリポジトリ
試すには
git cloneしてWindowsなら./test.cmd回してテストコードが全て成功したらOK。 ./bench.cmdでベンチマークが走るのでそれを使ってV1との性能比較が出来る。
依存
netstandard2.0以上で動作することを想定。
Unity2018.4以上を対象としているので基本的にC#7.3で記述。
ただし個人的にC#8のnullableが無いと耐えられないので#if CSHARP_8_OR_NEWER
とプリプロセッサディレクティブでC#8を導入している。
多分Unity2021とかでこのDefineConstant定義されるでしょ(希望的観測)。
netstandard2.0, netcoreapp2.1, netcoreapp3.1で動作を検証している。 IL2CPPビルドで検証してくれる有志が欲しい……
デフォルトでシリアライズ可能な型
- プリミティブ型
- byte
- sbyte
- short
- ushort
- int
- uint
- long
- ulong
- IntPtr
- UIntPtr
- char
- bool
- float
- double
- string
- 配列
- 32次元までの多次元配列
- ArraySegment<>
- BitArray
- IEnumerable<>
- IGrouping<,>
- ILookup<,>
- ReadOnlyCollection<>
- List<>
- IList<>
- ICollection<>
- LinkedList<>
- Queue<>
- Stack<>
- HashSet<>
- DateTime
- DateTimeOffset
- TimeSpan
- Dictionary<,>
- ReadOnlyDictionary<,>
- SortedDictionary<,>
- IDictionary<,>
- ConcurrentDictionary<,>
- ImmutableDictionary<,>
- ImmutableSortedDictionary<,>
- KeyValuePair<,>
- SortedList<,>
- Exception
- BigInteger
- Complex
- ValueTuple
- ValueTuple<,>
- ValueTuple<,,>
- ValueTuple<,,,>
- ValueTuple<,,,,>
- ValueTuple<,,,,,>
- ValueTuple<,,,,,,>
- Tuple
- Tuple<,>
- Tuple<,,>
- Tuple<,,,>
- Tuple<,,,,>
- Tuple<,,,,,>
- Tuple<,,,,,,>
- ExpandoObject
- Task
- Task<>
- ValueTask<>
- CultureInfo
- DBNull
- Guid
- Nullable<>
- StringBuilder
- Uri
- Version
- MemberInfo
- MethodBase
- MethodInfo
- ConstructorInfo
- FieldInfo
- PropertyInfo
- Type
- TypeInfo
- MethodBase
- CustomAttributeData
- CustomAttributeNamedArgument
- CustomAttributeTypedArgument
Unity環境
- Bounds
- Color
- Color32
- Matrix4x4
- NativeArray<>
- Quaternion
- Rect
- RectInt
- Vecto2
- Vecto2Int
- Vecto3
- Vecto3Int
- Vecto4