Right now even if the JSON has no changes for it, any complex property of an object being read into is created by default. This feels unintuitive, as only properties that are keys in JSON should be touched.
class HelloWorld { void HelloWorld() { Print("HelloWorld::Ctor()"); } } class Holder { ref HelloWorld m_pHelloWorld; } Holder holder(); Print(holder.m_pHelloWorld); SCR_JsonLoadContext reader(); reader.ImportFromString("{}"); reader.ReadValue("", holder); Print(holder.m_pHelloWorld);
SCRIPT : HelloWorld m_pHelloWorld = NULL
SCRIPT : HelloWorld::Ctor()
SCRIPT : HelloWorld m_pHelloWorld = HelloWorld<0x000002D755EA9070>