Comments (5)
What would be the benefit of having a dedicated JSON loader? The existing loader is able to load any JSON. I can think of some benefits, but none of them really justify the complexity it adds:
- Identifying invalid JSON that would be valid YAML (but I am unsure in which scenario NimYAML is the right tool for this)
- Faster loading (parsing JSON is significantly faster than parsing YAML, though lesser than a magnitude). I once or twice heard about people parsing multiple MBs of data, but that seems to be a rather exotic use-case. For small amounts of data, the performance increase should not be that relevant.
- Motivating people to use NimYaml instead of
marshal
to (de)serialize JSON. That would be a marketing reason, which, in my eyes, is not really a good reason.
from nimyaml.
For the record, I thought about de-coupling NimYAML's serialization API from the YAML backend so it can be used with different backends (XML, INI, you name it). But unfortunately, this would mean to change the intermediate representation (currently the YamlStream
) to accommodate the very different structure of XML, for example. I have not yet succeeded in crafting such a representation that fits all needs, so I currently go with YAML-only.
from nimyaml.
My use-case is primarily #1. There are some services out there which consume files written in JSON in order to perform actions, and I sometimes have to write scripts which augment existing files created for these services.
from nimyaml.
For augmenting an existing JSON file, doesn't it suffice to load it as YAML and dump it with psJson
? Your use-case doesn't sound like you would need to ensure that the original file is valid JSON. The augmented file will be.
from nimyaml.
Closing this since it is out-of-scope for NimYAML.
from nimyaml.
Related Issues (20)
- [Documentation] Simple example for loading a simple .yml file? HOT 3
- broken enum HOT 3
- Compilation hint: 'dump' cannot raise 'YamlSerializationError' [XCannotRaiseY] HOT 5
- dumping leaves part of string on same line as >- making the file unable to be loaded from HOT 8
- `| >` wrapping functionality can generate invalid YAML HOT 1
- Fails to parse a triple dot in string lit
- defaultVal is not observed on stropped names HOT 2
- Anchor in ignored tag HOT 5
- Feature: Let user choose/disable maximum line length for presentation HOT 4
- BUG: loading zero to unsigned integer generates a YamlConstructionError
- BUG: loading to float32 generates an error HOT 3
- Can't get optional fields to work HOT 3
- ignore pragma doesn't work on nested maps HOT 1
- nimble install yaml fails on devel version of Nim (needs new release) HOT 1
- Crashes on incorrect YAML HOT 2
- Raise an unlisted exception HOT 13
- Parent fields cause failure when deserializing child object HOT 3
- Catchable exception warnings HOT 2
- Seemingly pointless proc HOT 6
- Implement Sane Defaults HOT 5
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 nimyaml.