Пример ts_json
// Сформировать json конструкцию и вывести в строку
int Do_iButton_JsonOut()
{
string svalue;
int ivalue;
int iJSON;
object("create", "ts_json", iJSON);
ts_json(iJSON, "init");
int iJSONRootClass;
object("create", "ts_class", iJSONRootClass);
ts_json(iJSON, "GetRootClassObject", iJSONRootClass);
// Имя проекта
ts_dialogcontrol(iTextEdit_ProjectName_MainDialog, "GetText", svalue);
int iProjectName;
object("create", "ts_string", iProjectName, "project_name");
object("set_simple_value", iProjectName, svalue);
ts_class(iJSONRootClass, "add_property", iProjectName);
// Код проекта в системе iRidi
ts_dialogcontrol(iIntEdit_iRidiProjectID_MainDialog, "GetValue", ivalue);
int iProject_PT_ID;
object("create", "ts_num", iProject_PT_ID, "project_PT_ID");
object("set_simple_value", iProject_PT_ID, ivalue);
ts_class(iJSONRootClass, "add_property", iProject_PT_ID);
int iFloorArray;
object("create", "ts_array", iFloorArray, "floors");
int iClassFloor;
int iFloorName;
int iFloorIndex;
int iRoomArray;
object("create", "ts_array", iRoomArray, "rooms");
int iClassRoom;
int iRoomName;
int iRoomGUID;
int iRoom_PT_ID;
int iElementArray;
object("create", "ts_array", iElementArray, "elements");
int iClassElement;
int iElementName;
int iElementGUID;
int iPT_ID;
int iID;
int iElementParamerersArray;
int iClassElementParameter;
int iParameterName;
int iParameterType;
int iParameterValue;
int i, icount;
int FloorIndex;
string FloorName;
ts_table(iTable_Floors, "get_rows_count", icount);
coutvar << icount;
for (i = 0; i < icount; i++)
{
ts_table(iTable_Floors, "select_row", i);
ts_table(iTable_Floors, "get_value_of",
"FloorIndex", FloorIndex,
"FloorName" , FloorName
);
object("create", "ts_class", iClassFloor, "");
object("create", "ts_string", iFloorName, "floor_name");
object("set_simple_value", iFloorName, FloorName);
ts_class(iClassFloor, "add_property", iFloorName);
object("create", "ts_num", iFloorIndex, "floor_index");
object("set_simple_value", iFloorIndex, FloorIndex);
ts_class(iClassFloor, "add_property", iFloorIndex);
ts_array(iFloorArray, "Push", iClassFloor);
}
ts_table(iTable_Rooms, "sort", "FloorIndex", "RoomName");
string GUID, RoomName, RoomGUID;
int Room_PT_ID;
ts_table(iTable_Rooms, "get_rows_count", icount);
coutvar << icount;
for (i = 0; i < icount; i++)
{
ts_table(iTable_Rooms, "select_row", i);
ts_table(iTable_Rooms, "get_value_of",
"GUID", RoomGUID,
"RoomName" , RoomName,
"PT_ID", Room_PT_ID,
"FloorIndex", FloorIndex
);
object("create", "ts_class", iClassRoom, "");
object("create", "ts_string", iRoomGUID, "room_guid"); object("set_simple_value", iRoomGUID, RoomGUID); ts_class(iClassRoom, "add_property", iRoomGUID);
object("create", "ts_string", iRoomName, "room_name"); object("set_simple_value", iRoomName, RoomName); ts_class(iClassRoom, "add_property", iRoomName);
object("create", "ts_num", iRoom_PT_ID, "room_PT_ID"); object("set_simple_value", iRoom_PT_ID, Room_PT_ID); ts_class(iClassRoom, "add_property", iRoom_PT_ID);
object("create", "ts_num", iFloorIndex, "floor_index"); object("set_simple_value", iFloorIndex, FloorIndex); ts_class(iClassRoom, "add_property", iFloorIndex);
ts_array(iRoomArray, "Push", iClassRoom);
}
ts_table(iTable_Elements, "add_column", -1, "string", "GUID");
ts_table(iTable_Elements, "add_column", -1, "string", "RoomGUID");
ts_table(iTable_Elements, "add_column", -1, "int", "PT_ID");
ts_table(iTable_Elements, "add_column", -1, "string", "ElementClass");
ts_table(iTable_Elements, "add_column", -1, "string", "ElementName");
ts_table(iTable_Elements, "add_column", -1, "string", "ID");
ts_table(iTable_Elements, "add_column", -1, "string", "ElementParametersTable"); // таблица параметров
ts_table(iTable_Elements, "sort", "RoomGUID", "GUID");
//string GUID, RoomName, RoomGUID;
string ElementClass, ElementName, ID, ElementParametersTable;
int PT_ID;
ts_table(iTable_Elements, "get_rows_count", icount);
coutvar << icount;
for (i = 0; i < icount; i++)
{
ts_table(iTable_Elements, "select_row", i);
ts_table(iTable_Elements, "get_value_of",
"GUID", GUID,
"RoomGUID", RoomGUID,
"ElementName", ElementName,
"ElementClass", ElementClass,
"ID", ID,
"PT_ID", PT_ID
);
object("create", "ts_class", iClassElement, "");
object("create", "ts_string", iElementGUID, "element_guid"); object("set_simple_value", iElementGUID, GUID); ts_class(iClassElement, "add_property", iElementGUID);
object("create", "ts_string", iRoomGUID, "element_room_guid"); object("set_simple_value", iRoomGUID, RoomGUID); ts_class(iClassElement, "add_property", iRoomGUID);
object("create", "ts_string", iElementName, "element_name"); object("set_simple_value", iElementName, ElementName); ts_class(iClassElement, "add_property", iElementName);
object("create", "ts_num", iPT_ID, "element_PT_ID"); object("set_simple_value", iPT_ID, PT_ID); ts_class(iClassElement, "add_property", iPT_ID);
object("create", "ts_string", iID, "element_ID"); object("set_simple_value", iID, ID); ts_class(iClassElement, "add_property", iID);
object("create", "ts_array", iElementParamerersArray, "element_parameters");
object("create", "ts_class", iClassElementParameter, "");
object("create", "ts_string", iParameterName , "element_parameter_name"); object("set_simple_value", iParameterName, "Параметр текстовый"); ts_class(iClassElementParameter, "add_property", iParameterName);
object("create", "ts_string", iParameterType , "element_parameter_type"); object("set_simple_value", iParameterType, "string"); ts_class(iClassElementParameter, "add_property", iParameterType);
object("create", "ts_string", iParameterValue, "element_parameter_svalue"); object("set_simple_value", iParameterValue, "Значение текстового параметра"); ts_class(iClassElementParameter, "add_property", iParameterValue);
ts_array(iElementParamerersArray, "Push", iClassElementParameter);
object("create", "ts_class", iClassElementParameter, "");
object("create", "ts_string", iParameterName , "element_parameter_name"); object("set_simple_value", iParameterName, "Параметр с плавающей точкой"); ts_class(iClassElementParameter, "add_property", iParameterName);
object("create", "ts_string", iParameterType , "element_parameter_type"); object("set_simple_value", iParameterType, "double"); ts_class(iClassElementParameter, "add_property", iParameterType);
object("create", "ts_string", iParameterValue, "element_parameter_svalue"); object("set_simple_value", iParameterValue, "111.223"); ts_class(iClassElementParameter, "add_property", iParameterValue);
ts_array(iElementParamerersArray, "Push", iClassElementParameter);
object("create", "ts_class", iClassElementParameter, "");
object("create", "ts_string", iParameterName , "element_parameter_name"); object("set_simple_value", iParameterName, "Параметр логический"); ts_class(iClassElementParameter, "add_property", iParameterName);
object("create", "ts_string", iParameterType , "element_parameter_type"); object("set_simple_value", iParameterType, "bool"); ts_class(iClassElementParameter, "add_property", iParameterType);
object("create", "ts_string", iParameterValue, "element_parameter_svalue"); object("set_simple_value", iParameterValue, "1"); ts_class(iClassElementParameter, "add_property", iParameterValue);
ts_array(iElementParamerersArray, "Push", iClassElementParameter);
object("create", "ts_class", iClassElementParameter, "");
object("create", "ts_string", iParameterName , "element_parameter_name"); object("set_simple_value", iParameterName, "Параметр целочисленный"); ts_class(iClassElementParameter, "add_property", iParameterName);
object("create", "ts_string", iParameterType , "element_parameter_type"); object("set_simple_value", iParameterType, "int"); ts_class(iClassElementParameter, "add_property", iParameterType);
object("create", "ts_string", iParameterValue, "element_parameter_svalue"); object("set_simple_value", iParameterValue, "111"); ts_class(iClassElementParameter, "add_property", iParameterValue);
ts_array(iElementParamerersArray, "Push", iClassElementParameter);
ts_class(iClassElement, "add_property", iElementParamerersArray);
ts_array(iElementArray, "Push", iClassElement);
}
ts_class(iJSONRootClass, "add_property", iFloorArray);
ts_class(iJSONRootClass, "add_property", iRoomArray);
ts_class(iJSONRootClass, "add_property", iElementArray);
string str;
ts_json(iJSON, "EncodeToStr", str);
coutvar << str;
//c:\\iridi_json_out.txt
object("delete", iJSON); // удалить объект
}
Created with the Personal Edition of HelpNDoc: Easily create Qt Help files