I am currently working on a project to save the course of a table tennis game and evaluate it later.
I would like to save the data in a json structure.
I don’t have much of an idea of how best to set up such a json structure in order to be able to evaluate it ideally.
I have created an example structure. But do you have any suggestions for improvement or tips that should be changed?
The following jsonstructur includes one Match with 2 played Sets.
{
"tt_games": [
{
"game_id": "2024-04-20 19:56:45",
"game_info": [
{
"player_name": "Player 1",
"match_winner": true,
"set_wins": 2
},
{
"player_name": "Player 2",
"match_winner": false,
"set_wins": 0
}
],
"sets": [
{
"set": 1,
"set_info": [
{
"player_name": "Player 1",
"set_winner": true,
"current_set_wins": 1,
"final_player_points": 11
},
{
"player_name": "Player 2",
"set_winner": false,
"current_set_wins": 0,
"final_player_points": 8
}
],
"set_process": [
{
"point": 1,
"point_info": [
{
"player_name": "Player 1",
"server": false,
"point_winner": false,
"current_points": 0
},
{
"player_name": "Player 2",
"server": true,
"point_winner": true,
"current_points": 1
}
]
},
{
"point": 2,
"point_info": [
{
"player_name": "Player 1",
"server": false,
"point_winner": true,
"current_points": 1
},
{
"player_name": "Player 2",
"server": true,
"point_winner": false,
"current_points": 1
}
]
},
{
"point": 3,
"point_info": [
{
"player_name": "Player 1",
"server": true,
"point_winner": false,
"current_points": 1
},
{
"player_name": "Player 2",
"server": false,
"point_winner": true,
"current_points": 2
}
]
},
{
"point": 4,
"point_info": [
{
"player_name": "Player 1",
"server": true,
"point_winner": false,
"current_points": 1
},
{
"player_name": "Player 2",
"server": false,
"point_winner": true,
"current_points": 3
}
]
},
{
"point": 5,
"point_info": [
{
"player_name": "Player 1",
"server": false,
"point_winner": true,
"current_points": 2
},
{
"player_name": "Player 2",
"server": true,
"point_winner": false,
"current_points": 3
}
]
},
{
"point": 6,
"point_info": [
{
"player_name": "Player 1",
"server": false,
"point_winner": false,
"current_points": 2
},
{
"player_name": "Player 2",
"server": true,
"point_winner": true,
"current_points": 4
}
]
},
{
"point": 7,
"point_info": [
{
"player_name": "Player 1",
"server": true,
"point_winner": true,
"current_points": 3
},
{
"player_name": "Player 2",
"server": false,
"point_winner": false,
"current_points": 4
}
]
},
{
"point": 8,
"point_info": [
{
"player_name": "Player 1",
"server": true,
"point_winner": false,
"current_points": 3
},
{
"player_name": "Player 2",
"server": false,
"point_winner": true,
"current_points": 5
}
]
},
{
"point": 9,
"point_info": [
{
"player_name": "Player 1",
"server": false,
"point_winner": false,
"current_points": 3
},
{
"player_name": "Player 2",
"server": true,
"point_winner": true,
"current_points": 6
}
]
},
{
"point": 10,
"point_info": [
{
"player_name": "Player 1",
"server": false,
"point_winner": true,
"current_points": 4
},
{
"player_name": "Player 2",
"server": true,
"point_winner": false,
"current_points": 6
}
]
},
{
"point": 11,
"point_info": [
{
"player_name": "Player 1",
"server": true,
"point_winner": false,
"current_points": 4
},
{
"player_name": "Player 2",
"server": false,
"point_winner": true,
"current_points": 7
}
]
},
{
"point": 12,
"point_info": [
{
"player_name": "Player 1",
"server": true,
"point_winner": false,
"current_points": 4
},
{
"player_name": "Player 2",
"server": false,
"point_winner": true,
"current_points": 8
}
]
},
{
"point": 13,
"point_info": [
{
"player_name": "Player 1",
"server": false,
"point_winner": true,
"current_points": 5
},
{
"player_name": "Player 2",
"server": true,
"point_winner": false,
"current_points": 8
}
]
},
{
"point": 14,
"point_info": [
{
"player_name": "Player 1",
"server": false,
"point_winner": true,
"current_points": 6
},
{
"player_name": "Player 2",
"server": true,
"point_winner": false,
"current_points": 8
}
]
},
{
"point": 15,
"point_info": [
{
"player_name": "Player 1",
"server": true,
"point_winner": true,
"current_points": 7
},
{
"player_name": "Player 2",
"server": false,
"point_winner": false,
"current_points": 8
}
]
},
{
"point": 16,
"point_info": [
{
"player_name": "Player 1",
"server": true,
"point_winner": true,
"current_points": 8
},
{
"player_name": "Player 2",
"server": false,
"point_winner": false,
"current_points": 8
}
]
},
{
"point": 17,
"point_info": [
{
"player_name": "Player 1",
"server": false,
"point_winner": true,
"current_points": 9
},
{
"player_name": "Player 2",
"server": true,
"point_winner": false,
"current_points": 8
}
]
},
{
"point": 18,
"point_info": [
{
"player_name": "Player 1",
"server": false,
"point_winner": true,
"current_points": 10
},
{
"player_name": "Player 2",
"server": true,
"point_winner": false,
"current_points": 8
}
]
},
{
"point": 19,
"point_info": [
{
"player_name": "Player 1",
"server": true,
"point_winner": true,
"current_points": 11
},
{
"player_name": "Player 2",
"server": false,
"point_winner": false,
"current_points": 8
}
]
}
]
},
{
"set": 2,
"set_info": [
{
"player_name": "Player 2",
"set_winner": false,
"current_set_wins": 0,
"final_player_points": 1
},
{
"player_name": "Player 1",
"set_winner": true,
"current_set_wins": 2,
"final_player_points": 11
}
],
"set_process": [
{
"point": 1,
"point_info": [
{
"player_name": "Player 2",
"server": false,
"point_winner": false,
"current_points": 0
},
{
"player_name": "Player 1",
"server": true,
"point_winner": true,
"current_points": 1
}
]
},
{
"point": 2,
"point_info": [
{
"player_name": "Player 2",
"server": false,
"point_winner": false,
"current_points": 0
},
{
"player_name": "Player 1",
"server": true,
"point_winner": true,
"current_points": 2
}
]
},
{
"point": 3,
"point_info": [
{
"player_name": "Player 2",
"server": true,
"point_winner": false,
"current_points": 0
},
{
"player_name": "Player 1",
"server": false,
"point_winner": true,
"current_points": 3
}
]
},
{
"point": 4,
"point_info": [
{
"player_name": "Player 2",
"server": true,
"point_winner": true,
"current_points": 1
},
{
"player_name": "Player 1",
"server": false,
"point_winner": false,
"current_points": 3
}
]
},
{
"point": 5,
"point_info": [
{
"player_name": "Player 2",
"server": false,
"point_winner": false,
"current_points": 1
},
{
"player_name": "Player 1",
"server": true,
"point_winner": true,
"current_points": 4
}
]
},
{
"point": 6,
"point_info": [
{
"player_name": "Player 2",
"server": false,
"point_winner": false,
"current_points": 1
},
{
"player_name": "Player 1",
"server": true,
"point_winner": true,
"current_points": 5
}
]
},
{
"point": 7,
"point_info": [
{
"player_name": "Player 2",
"server": true,
"point_winner": false,
"current_points": 1
},
{
"player_name": "Player 1",
"server": false,
"point_winner": true,
"current_points": 6
}
]
},
{
"point": 8,
"point_info": [
{
"player_name": "Player 2",
"server": true,
"point_winner": false,
"current_points": 1
},
{
"player_name": "Player 1",
"server": false,
"point_winner": true,
"current_points": 7
}
]
},
{
"point": 9,
"point_info": [
{
"player_name": "Player 2",
"server": false,
"point_winner": false,
"current_points": 1
},
{
"player_name": "Player 1",
"server": true,
"point_winner": true,
"current_points": 8
}
]
},
{
"point": 10,
"point_info": [
{
"player_name": "Player 2",
"server": false,
"point_winner": false,
"current_points": 1
},
{
"player_name": "Player 1",
"server": true,
"point_winner": true,
"current_points": 9
}
]
},
{
"point": 11,
"point_info": [
{
"player_name": "Player 2",
"server": true,
"point_winner": false,
"current_points": 1
},
{
"player_name": "Player 1",
"server": false,
"point_winner": true,
"current_points": 10
}
]
},
{
"point": 12,
"point_info": [
{
"player_name": "Player 2",
"server": true,
"point_winner": false,
"current_points": 1
},
{
"player_name": "Player 1",
"server": false,
"point_winner": true,
"current_points": 11
}
]
}
]
}
]
}
]
}
New contributor
Mo House is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.