diff --git a/src/SymbolTable.cc b/src/SymbolTable.cc index 68a0bc64ed9cd8b9d2fb42908e4a943a78cab9ff..1a10f2397b2f4c477838b0a11853b0bf67a4259e 100644 --- a/src/SymbolTable.cc +++ b/src/SymbolTable.cc @@ -1061,6 +1061,48 @@ SymbolTable::writeJsonOutput(ostream &output) const output << R"(, "parameters": )"; writeJsonVarVector(output, param_ids); + + if (observedVariablesNbr() > 0) + { + output << R"(, "varobs": [)"; + for (size_t i = 0; i < varobs.size(); i++) + { + if (i != 0) + output << ", "; + output << R"(")" << getName(varobs[i]) << R"(")"; + } + output << "]" << endl; + + output << R"(, "varobs_ids": [)"; + for (size_t i = 0; i < varobs.size(); i++) + { + if (i != 0) + output << ", "; + output << getTypeSpecificID(varobs[i])+1; + } + output << "]" << endl; + } + + if (observedExogenousVariablesNbr() > 0) + { + output << R"(, "varexobs": [)"; + for (size_t i = 0; i < varexobs.size(); i++) + { + if (i != 0) + output << ", "; + output << R"(")" << getName(varexobs[i]) << R"(")"; + } + output << "]" << endl; + + output << R"(, "varexobs_ids": [)"; + for (size_t i = 0; i < varexobs.size(); i++) + { + if (i != 0) + output << ", "; + output << getTypeSpecificID(varexobs[i])+1; + } + output << "]" << endl; + } } void