Comments (6)
It should not get triggered. Can you provide an example of how it was triggered. My tests must not be complete enough.
from oj.
Our Rails app's Gemfile includes both oj
and oj_mimic_json
. We also have an indirect dependency on json
(the latest version, v2.6.3
).
When first launching the app, the warning gets printed out. I bundle open oj
'ed to add puts
all over which confirmed that it's this line https://github.com/ohler55/oj/blob/v3.15.1/lib/oj/mimic.rb#L99 that causes the warning to be printed out.
I inspected JSON::PRETTY_STATE_PROTOTYPE
: it's the constant defined by json
rather than the one defined by oj/json
(https://github.com/flori/json/blob/v2.6.3/lib/json/common.rb#L76)
I confirmed this by changing that line locally to
const_set :PRETTY_STATE_PROTOTYPE, {hello: :bug}
and then adding this to oj/json.rb
:
if defined?(JSON::PRETTY_STATE_PROTOTYPE)
+ puts JSON::PRETTY_STATE_PROTOTYPE.inspect
warn "WARNING: oj/json is a compatability shim used by Oj. Requiring the file explicitly is no recommended."
end
> spring stop
Spring stopped
> bundle exec spring rails r "puts :ok"
{:hello=>:bug}
WARNING: oj/json is a compatability shim used by Oj. Requiring the file explicitly is no recommended.
Running via Spring preloader in process 51676
ok
from oj.
The issue is requiring the JSON gem first. If that is done there should not be a reason to include oj/json.rb. At least that was my thinking. The issue being fixed was including the JSON gem and the oj/json caused an infinite loop. Possibly the fix is to remove or do an extra check in oj_mimic_json. Worse case I'll have the warning silenced but I'd like to explore other options first.
from oj.
Please try the latest v3.16.0.
from oj.
No response, closing.
from oj.
Sorry, I missed the notification—it is indeed fixed, thank you!
from oj.
Related Issues (20)
- Skipping null bytes on dump HOT 9
- stack level too deep when using `JSON.parse`. HOT 10
- Oj::Rails.mimic_JSON() raises Oj::ParseError invalid float HOT 4
- Not initialised stack_buffer HOT 6
- How to avoid outputting small floats in scientific notation HOT 6
- Does `max_nesting` work? HOT 14
- Getting `TypeError: wrong argument type nil (expected Class)` instead of expected `Oj::ParseError`
- oj_parse_xml_time parses incorrectly unless there are exactly 9 fractional digits HOT 1
- Optimize JSON for pub sub transmission? HOT 1
- Parser options documentation formatting error HOT 3
- Migrating strict mode options to the new usual parser HOT 4
- BigDecimal 3.1 dependency brings excessive memory usage HOT 8
- Rejecting invalid UTF-8 without opting in to XSS character escaping HOT 2
- "Optimized" implementations of ActiveSupport methods not used with `render json: ...`
- Oj.optimize_rails breaks JSON.load - creates BigDecimal instead of Float HOT 3
- How do you get Oj to dump a big decimal as a number not in scientific notation? HOT 9
- Behavior with Oj.default_options of create_additions: true HOT 2
- Issues with DelegateClass. HOT 11
- `Oj::Parser#load` fails on buffered input HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from oj.