Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

platform: Correctly handle integer-like numbers from JSON #1531

Merged
merged 1 commit into from
Jun 18, 2024

Conversation

rohansingh
Copy link
Contributor

@rohansingh rohansingh commented Jun 17, 2024

In JSON, an allowed representation for doubles without a fractional part like 1.0 is actually 1. This is, for example, the behavior of JSONEncoder.

When using jsonDecode, a 0 or 1 is deserialized to an int, which would then cause Position.fromMap to crash. Instead, use toDouble() to ensure that the value is converted to a double.

Pre-launch Checklist

  • I made sure the project builds.
  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy, or this PR is does not need version changes.
  • I updated CHANGELOG.md to add a description of the change.
  • I updated/added relevant documentation (doc comments with ///).
  • I rebased onto main.
  • I added new tests to check the change I am making, or this PR does not need tests.
  • I made sure all existing and new tests are passing.
  • I ran dart format . and committed any changes.
  • I ran flutter analyze and fixed any errors.

In JSON, an allowed representation for doubles without a fractional
part like `1.0` is actually `1`. This is, for example, the behavior of
[JSONEncoder][1].

When using `jsonDecode`, a `0` or `1` is deserialized to an `int`, which
would then cause `Position.fromMap` to crash. Instead, use `toDouble()` to
ensure that the value is converted to a `double`.

[1]: https://developer.apple.com/documentation/foundation/jsonencoder
Copy link
Member

@mvanbeusekom mvanbeusekom left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@mvanbeusekom mvanbeusekom merged commit 39c39ae into Baseflow:main Jun 18, 2024
1 check passed
@rohansingh
Copy link
Contributor Author

Thanks, appreciate the quick merge!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants