Comments (4)
It seems to work fine for me. If you look at each character in the string you will see there are no backslashes in the json string. Ruby displays the backslashes to denote the embedded quote characters. They are not actually in the string itself. When you get the second character a single quote character is returned. It is displayed as a backslash quote sequence but it is a single character.
Not when calling puts the display does not include the backslashes.
irb(main):001:0> json = %{{"json":[{"id":1,"title":"Casablanca"}]}}
=> "{"json":[{"id":1,"title":"Casablanca"}]}"
irb(main):002:0> obj = Oj.load(json)
=> {"json"=>[{"id"=>1, "title"=>"Casablanca"}]}
irb(main):003:0> obj.class
=> Hash
irb(main):004:0> j2 = Oj.dump(obj)
=> "{"json":[{"id":1,"title":"Casablanca"}]}"
irb(main):005:0> j2 == json
=> true
irb(main):006:0> j2[1]
=> """
irb(main):007:0> puts j2
{"json":[{"id":1,"title":"Casablanca"}]}
=> nil
from oj.
I'm not sure I understand. When I output the JSON string without Oj I don't get any backslashes. When I add Oj.dump() I do get the backslashes. I understand that the backslashes are there because the string is itself eclosed within another string, but it seems to me that what is eclosing the original string within a second string is Oj no?
What am I missing?
PS
It is true that when I use puts
from the IRB the backslashes are not there.
puts Oj.dump(Dvd.title_search('casablanca').map { |e| e.title})
["Casablanca"]
=> nil
So you're saying not to worry about it and pass the JSON string on to the app and it won't have the backslashes :)
Thanks.
from oj.
Notice on the first line of the sample code the quotes are escaped with backslashes when displayed by rib. Same for the Oj dumped string. It really is just a display issue and it depends on how it is displayed for both strings.
Bottom line is don't worry, it is correct and other applications will be able to read it as JSON. Have fun.
from oj.
Thanks a lot Peter, and thanks for the gem!
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
- `v3.15.1` causes a warning to be output when calling `Oj.mimic_JSON` HOT 6
- 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.