У меня есть много устаревшего кода, где json
разобран вручную с помощью цикла for. Это занимает O(n)
раз в целом. Я знаю, что json.net
будет лучше с точки зрения time
и space
, но получить представление о том, как это работает, поможет мне принять обоснованное решение о том, стоит ли на самом деле идти вперед и инвестировать время и силы человека, чтобы переместить все на json. сеть.Как Serialize и De-serialize работают внутри?
ответ
Чтобы перефразировать ваш вопрос в более общем, давайте предположим, что вы искали совет, по которому реализация сериализации JSON выбирала для различных сценариев.
Я знаю три очевидных ответов на этот вопрос:
- NewtonSoft Json.NET
- Обеспечивает множество функций и отличную производительность
- ServiceStack.Text
- Обеспечивает простоту и великолепную производительность
- BCL JsonSerializer
- Избегает 3-й зависимости библиотеки партии, но значительно медленнее
Если вы не заботитесь о 3-зависимости библиотечной партии, идти на первый вариант, как это даст вам производительность и функциональность. Если вам не нужна тонна функций, оцените, делает ли ServiceStack.Text то, что вам нужно (если не уверен, перейдите в JSON.NET). В любом другом случае придерживайтесь того, что у вас есть.
Кроме того, не тратьте время на создание кода быстрее, заменив код JSON, прежде чем вы узнаете, что эта конкретная область является узким местом производительности (или, наоборот, требует замены, например, потому что это проблема обслуживания). Если вы планируете заменить код для повышения производительности, выделите несколько методов для профилирования и сравните свой текущий код с аналогичными сценариями, используя альтернативную реализацию или библиотеку, чтобы избежать принятия решения на основе допущений.
Последнее, зная, как оно работает внутри страны, не должно быть фактором в процессе принятия решений, если вы специально не планируете изменять его источник (или, иначе, должны быть способны его понять).
спасибо, что было полезно –
- 1. Serialize/deserialize unsigned char
- 2. Простая реализация Serialize/Deserialize
- 3. Как сохранить/Deserialize/Serialize GenericXmlSecurityToken?
- 4. Serialize/Deserialize ArrayList
- 5. serialize/deserialize & modify data
- 6. get_defined_vars Serialize/Deserialize
- 7. RestSharp Serialize/Deserialize Naming Conversion
- 8. замена для roundtrip serialize-deserialize
- 9. Как работают DataContracts? - Deserialize Json
- 10. JSON Jackson serialize deserialize Список List
- 11. Что это за объект? XML Serialize/Deserialize
- 12. ServiceStack Serialize and Deserialize Dictionary with Objects
- 13. Serialize/Deserialize encoder/decoder не работает
- 14. Jackson Scala JSON serialize/deserialize Tuple
- 15. Json.Net serialize/deserialize Атрибут класса C#
- 16. Что такое Deserialize & Serialize в JSON,
- 17. объектов Serialize Linq не работают
- 18. При вызове Serialize и Deserialize в паспорте js
- 19. Обратная связь по коду Serialize, Deserialize и сохранению изображения
- 20. Json.Net: Serialize/Deserialize свойство как значение, а не как объект
- 21. Deserialize несколько значений с boost :: serialize (с SSCCE)
- 22. Нужно пример/помощь с GtkTextBuffer (из GtkTextView) serialize/deserialize
- 23. Deserialize & Serialize Объект данных сеанса, хранящийся в cookie
- 24. Deserialize user, Serialize user not calls, passportjs express
- 25. Как намерения работают внутри?
- 26. Newtonsoft JSON Deserialize И jsonfreeze
- 27. jQuery serialize и unserialize
- 28. iCheck и jQuery serialize
- 29. jquery val() и serialize()
- 30. Как параметры SQL работают внутри?
Вы ожидаете алгоритм, который быстрее, чем одна итерация через данные? –
Что вы надеетесь уйти от этого вопроса? Любой может получить представление о том, как работает JSON.NET, просто взглянув на исходный код: http://json.codeplex.com/SourceControl/changeset/view/65597 –
Я думаю, он ищет внутри работы –