Найти в Дзене

Чем юнитевский JsonUtility отличается от Newtonsoft сериализатора данных в JSON строку


JSON строка - отличный формат для хранения данных и настроек, и Unity имеет на борту стандартную приблуду в виде сериализатора данных JsonUtility. Но ведь есть и альтернатива от Newtonsoft, которой также часто пользуются. В чем их отличия, и что лучше использовать?

JsonUtility - это облегченный и адаптированный для Unity вариант сериализатора данных, отсюда и все вытекающие:

1️⃣ JsonUtility быстрее и легче за счет урезанного функционала

2️⃣ JsonUtility может сериализовать Unity структуры вроде Vector, Quaternion, Color, а Newtonsoft не может

3️⃣ Зато Newtonsoft может сериализовать сущности помощнее вроде Dictionary, а JsonUtility не может

4️⃣ Для сериализации в Unity обязательно нужны публичные поля в классе, помеченном атрибутом Serializable, в Newtonsoft более тонкая настройка, где можно указать, какие свойства сериализовать, а какие нет

5️⃣ Также в Newtonsoft можно подменить имя сущности в JSON строке, что может сократить объем хранимых данных или сделать их менее читабельными для пользователя

В общем, если вы задумывались (вдруг) о том, стоит ли перейти с JsonUtility на Newtonsoft сериализатор (как я в свое время), то вот вам список выше, почему этого лучше не делать. Решение от Newtonsoft оочень редкая биба и нужна только для оочень больших проектов, и то, зачастую там сохранения на сервере в базе данных.

Всем пис!

#полезное
Чем юнитевский JsonUtility отличается от Newtonsoft сериализатора данных в JSON строку  JSON строка - отличный формат для хранения данных и настроек, и Unity имеет на борту стандартную приблуду в виде
1 минута