Problem with transmitting IMU/GPS/Ultrasonic data over Nrf24L01

thanks PaulS, so what method would be best for collecting all the data types from GPS (char)/IMU (float)/Ultra sonic (INT) and sending them in a constantly predictable order so on the RX end i can receive them and know what sensor they are from and type of data they are char float int. i was thinking structures because i could do like
sensors{
char GPS
float IMU1,2,3
int Ultrasonic
int/byte/float/char other stuffs etc.
}sensors;
but how could i pack that all up and send it in one buffer?
sensors.All
i supose i could delimit the data with some odd strings like.

<(@#:dataID,GPS|DataType,char|DataBits,$GPRMC,140053.00,A,4454.1740,N,09325.0143,W,000.0,128.7,300508,001.1,E,A*2E|:~&!>

so find < is next ( next@ next #? yes= good start find next : now look at tag DataID wich RX will then have a var for it predefined with type so it can hold it.
look for next | and get next tag id, DataType,type of data. would i not need to do it this way so the RX side knows how to parse each type?

or would it be simpler the make a char array and converts all types to it RF out the array rebuild it and convert back?