Published on InterSystems Developer Community (https://community.intersystems.com)

Home > GlobalToJSON-Efficient

Article
Robert Cemper · Jan 24 2m read
Open Exchange

GlobalToJSON-Efficient

I have created a package that offers a utility to load a Global into JSON object and reverse     
to create a Global from this type of JSON object. Efficient refers to the structure created.
Only Globals nodes containing data are presented in the generated JSON object.

The export of this Global 

Generates a JSON object that covers all Global nodes 

USER>write $$Do^ZPretty(json)
{
  "gbl":[
    {
      "node":"^dc.MultiD",
      "val":"5"
    },
    {
      "node":"^dc.MultiD(1)",
      "val":"$lb(\"Braam,Ted Q.\",51353)"
    },
    {
      "node":"^dc.MultiD(1,\"mJSON\")",
      "val":"{}"
    },
    {
      "node":"^dc.MultiD(2)",
      "val":"$lb(\"Klingman,Uma C.\",62459)"
    },
    {
      "node":"^dc.MultiD(2,2,\"Multi\",\"a\")",
      "val":"1"
    },
    {
      "node":"^dc.MultiD(2,2,\"Multi\",\"rob\",1)",
      "val":"rcc"
    },
    {
      "node":"^dc.MultiD(2,2,\"Multi\",\"rob\",2)",
      "val":"2222"
    },
    {
      "node":"^dc.MultiD(2,\"Multi\",\"a\")",
      "val":"1"
    },
    {
      "node":"^dc.MultiD(2,\"Multi\",\"rob\",1)",
      "val":"rcc"
    },
    {
      "node":"^dc.MultiD(2,\"Multi\",\"rob\",2)",
      "val":"2222"
    },
    {
      "node":"^dc.MultiD(2,\"mJSON\")",
      "val":"{\"A\":\"ahahah\",\"Rob\":\"VIP\",\"Rob2\":1111,\"Rob3\":true}"
    },
    {
      "node":"^dc.MultiD(3)",
      "val":"$lb(\"Goldman,Kenny H.\",45831)"
    },
    {
      "node":"^dc.MultiD(3,\"mJSON\")",
      "val":"{}"
    },
    {
      "node":"^dc.MultiD(4)",
      "val":"$lb(\"\",\"\")"
    },
    {
      "node":"^dc.MultiD(4,\"mJSON\")",
      "val":"{\"rcc\":122}"
    },
    {
      "node":"^dc.MultiD(5)",
      "val":"$lb(\"\",\"\")"
    },
    {
      "node":"^dc.MultiD(5,\"mJSON\")",
      "val":"{}"
    }
  ]
}
USER>


And the related Loader creates exactly the same Global

Online Demo Terminal
Online Demo SMP

Video

#Globals #JSON #InterSystems IRIS
Check the related application on InterSystems Open Exchange

Source URL: https://community.intersystems.com/post/globaltojson-efficient