www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - How to Delete Node from JSONValue?

reply Michael A. Puls II <shadow2531 gmail.com> writes:
     import std.json;

     void main() {
         JSONValue j = ["a": "b", "x": "y"];
         //j.remove("x");
         //j["x"] = null;
         destroy(j["x"]);
     }

What's the proper way to delete a node from a JSONValue object?

I was looking for something like remove("x") that you can do with 
an associative array, but std.json doesn't provide that. Setting 
the node to null or using destroy doesn't actually remove the 
node so that it's not serialized when using toJSON().
Nov 07
parent reply Andrea Fontana <nospam example.com> writes:
On Thursday, 7 November 2019 at 13:43:01 UTC, Michael A. Puls II 
wrote:
     import std.json;

     void main() {
         JSONValue j = ["a": "b", "x": "y"];
         //j.remove("x");
         //j["x"] = null;
         destroy(j["x"]);
     }

 What's the proper way to delete a node from a JSONValue object?

 I was looking for something like remove("x") that you can do 
 with an associative array, but std.json doesn't provide that. 
 Setting the node to null or using destroy doesn't actually 
 remove the node so that it's not serialized when using toJSON().
Here the right way: j.object.remove("x"); I found std.json syntax a bit strange, so I wrote a wrap over std.json to add a bit of syntax sugar: https://github.com/2night/jsonwrap/ Andrea
Nov 07
parent Michael A. Puls II <shadow2531 gmail.com> writes:
On Thursday, 7 November 2019 at 14:56:04 UTC, Andrea Fontana 
wrote:
 Here the right way:
 j.object.remove("x");
Thanks. That does the trick.
 I found std.json syntax a bit strange, so I wrote a wrap over 
 std.json to add a bit of syntax sugar:
 https://github.com/2night/jsonwrap/
Thanks. I'll check it out.
Nov 07