Comments (5)
The Json interface is immutable (by design), however you can build up json objects by using Json::object
(which is just a map<string, Json>
underneath).
Json
is immutable.Json::array
is actuallyvector<Json>
and is therefore mutableJson::object
is actuallymap<string, Json>
and is therefore mutable
Json::object mutable_json = Json::object {
{ "key1", "value1" },
{ "key2", false },
{ "key3", JSON::array { 1, 2, 3 } },
{ "key4", 666.333 }
};
mutable_json["key5"] = string {"something else"};
Json immutable_json = Json {mutable_json};
This makes sense (to me) because there is no guarantee that a Json
is an object - what would it mean to do this?
Json value = 5;
value["new_key"] = 6; // doesn't compile
from json11.
Hello skabbes
Many thanks for the response! The maintainer of the library may want to add your explanation to the user guide! I'm not really a JSON specialist, so I can't say what is 'legal' and what is not according to the json specification. However, from a purely practical perspective, I always think of the 'root' of the 'object' as a 'json object'. Would it really be 'Json' if it wasn't?
I am passing json objects around the network, as a quick way of putting messages together, and I needed to add an 'identifier token' to each message, and I just couldn't figure out how to do that. I did mange eventually to add an 'insert' function after struggling for quite a while.
Thanks
from json11.
hello skabbes,
Thanks for the tip! I am able to add a node but I need to add a Dictionary within a new entry into the map how would go ahead with it?
instead of this
mutable_json["key5"] = string {"something else"};
I need something like
mutable_json["key5"] = { add a name and value pair }
from json11.
@maverick447 give this a try:
mutable_json["key5"] = Json::object {
{ "new_key", "new_value" }
};
from json11.
HI skabbes,
Thanks!
from json11.
Related Issues (20)
- is it possible to add fields to the json? HOT 1
- in json11.cpp line 161 , why use static_cast, what if a json object is a runtime parsed object HOT 1
- clang 6.0 compilation error HOT 2
- Check if a json object key exists HOT 2
- differentiate between "number" and "integer" as per json schema HOT 1
- Tag Versioning HOT 6
- Number size issue.
- Can't parse wstring?
- auto casting HOT 4
- has_shape() always returns true when used with json11::Json::NUL HOT 1
- [Feature] conan package manager support HOT 1
- Order serealization Json::object HOT 2
- ASAN reports runtime error HOT 1
- swig4.0.0 and mingw compile the test.cpp(main modified to be a function) :error: 'final' is not a member of 'json11' HOT 3
- can't be loaded as a dll in low version c++? HOT 2
- Warning '-Werror=overloaded-virtual' with gcc-5.1.0 --std=c++14 HOT 1
- Making object_items(), array_items() not const or alternatively support mutable_object_items() HOT 1
- Super stuff. HOT 1
- No API to add Json (f.e. array) to Json::object outside of ctor. HOT 1
- Buliding for windows? HOT 1
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 json11.