2016-09-23 1 views
1

J'ai créé un programme C++ avec des combinaisons de cout pour obtenir une sortie en tant que chaîne JSON afin de pouvoir le décoder en PHP en utilisant la fonction json_decode. J'ai généré la chaîne avec ma propre logique. Je crois qu'il y a un problème dans la chaîne de sortie, mais je suis incapable de le trouver même après avoir passé des heures.Une chaîne JSON malformée a besoin de correction pour PHP

Le var_dump (json_decode ($ string, TRUE)); émet

NULL 

json_last_error_msg(); donne

quoted object property name expected 

json_last_error(); donne

4 

La chaîne d'origine, je suis en train de décoder en utilisant json_decode ($ string, TRUE) en PHP5, Plate-forme: x64 Ubuntu 14.04 LTS (apache2, php5, php5-json) installé

{"initUserGrid" :{ { 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } , { 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } , { 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } , { 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 } , { 1 , 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 } , { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } , { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } , { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } , { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } , { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }},"initBotGrid" :{ { 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } , { 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } , { 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } , { 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 } , { 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } , { 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } , { 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } , { 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } , { 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } , { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }},"moves" : { "user" : {7 , 6} , "bot" : {0 , 6} , "user" : {2 , 9} , "bot" : {1 , 4} , "user" : {8 , 1} , "bot" : {2 , 4} , "user" : {9 , 9} , "bot" : {0 , 9} , "user" : {9 , 4} , "bot" : {3 , 2} , "bot" : {6 , 6} , "user" : {8 , 8} , "bot" : {4 , 0} , "bot" : {4 , 0} , "user" : {6 , 5} , "bot" : {2 , 7} , "user" : {3 , 3} , "user" : {4 , 4} , "bot" : {9 , 7} , "user" : {9 , 7} , "bot" : {1 , 9} , "user" : {8 , 3} , "bot" : {4 , 3} , "bot" : {7 , 8} , "user" : {0 , 4} , "bot" : {2 , 2} , "bot" : {1 , 8} , "user" : {0 , 1} , "user" : {1 , 7} , "bot" : {2 , 4} , "user" : {4 , 9} , "bot" : {4 , 4} , "bot" : {1 , 7} , "user" : {5 , 8} , "bot" : {5 , 0} , "user" : {9 , 6} , "bot" : {9 , 7} , "user" : {0 , 9} , "bot" : {9 , 4} , "user" : {0 , 9} , "bot" : {1 , 1} , "bot" : {1 , 4} , "user" : {5 , 4} , "bot" : {1 , 1} , "user" : {7 , 8} , "bot" : {7 , 6} , "user" : {2 , 1} , "user" : {1 , 1} , "user" : {1 , 3} , "bot" : {5 , 6} , "user" : {2 , 7} , "bot" : {6 , 4} , "user" : {5 , 3} , "bot" : {9 , 8} , "user" : {7 , 4} , "bot" : {5 , 9} , "user" : {4 , 0} , "user" : {5 , 6} , "bot" : {9 , 1} , "user" : {2 , 8} , "bot" : {4 , 9} , "user" : {0 , 9} , "bot" : {3 , 9} , "user" : {2 , 1} , "bot" : {9 , 4} , "user" : {3 , 8} , "bot" : {4 , 3} , "user" : {7 , 1} , "bot" : {9 , 0} , "user" : {6 , 6} , "bot" : {8 , 8} , "user" : {9 , 4} , "bot" : {0 , 4} , "user" : {7 , 6} , "bot" : {6 , 2} , "user" : {1 , 9} , "bot" : {1 , 1} , "user" : {2 , 3} , "bot" : {7 , 6} , "user" : {0 , 4} , "bot" : {4 , 6} , "user" : {0 , 6} , "bot" : {7 , 1} , "user" : {3 , 9} , "bot" : {7 , 9} , "user" : {7 , 9} , "bot" : {3 , 7} , "user" : {1 , 8} , "bot" : {6 , 6} , "user" : {0 , 1} , "bot" : {2 , 3} , "user" : {6 , 1} , "bot" : {4 , 3} , "user" : {9 , 8} , "bot" : {4 , 1} , "bot" : {0 , 2} , "user" : {8 , 9} , "bot" : {0 , 0} , "bot" : {9 , 7} , "user" : {6 , 3} , "bot" : {4 , 8} , "user" : {6 , 6} , "bot" : {4 , 0} , "user" : {6 , 9} , "bot" : {0 , 3} , "user" : {6 , 6} , "bot" : {9 , 3} , "user" : {8 , 2} , "bot" : {2 , 5} , "user" : {7 , 0} , "user" : {2 , 6} , "bot" : {5 , 7} , "user" : {9 , 2} , "bot" : {9 , 7} , "user" : {2 , 0} , "user" : {8 , 8} , "bot" : {4 , 7} , "user" : {7 , 6} , "bot" : {6 , 0} , "user" : {3 , 5} , "bot" : {3 , 8} , "user" : {1 , 1} , "bot" : {5 , 2} , "user" : {9 , 2} , "bot" : {2 , 7} , "user" : {4 , 6} , "bot" : {5 , 4} , "user" : {8 , 1} , "bot" : {9 , 6} , "user" : {6 , 9} , "bot" : {7 , 3} , "user" : {0 , 7} , "bot" : {3 , 3} , "bot" : {4 , 9} , "user" : {6 , 1} , "bot" : {0 , 9} , "user" : {3 , 9} , "bot" : {3 , 3} , "user" : {5 , 8} , "bot" : {6 , 3} , "user" : {1 , 9} , "bot" : {5 , 0} , "user" : {3 , 9} , "bot" : {5 , 3} , "user" : {3 , 4} , "bot" : {8 , 4} , "user" : {3 , 2} , "user" : {6 , 0} , "user" : {0 , 8} , "bot" : {0 , 2} , "user" : {3 , 8} , "bot" : {8 , 0} , "user" : {5 , 6} , "bot" : {5 , 3} , "user" : {8 , 3} , "bot" : {2 , 1} , "bot" : {3 , 0} , "bot" : {1 , 8} , "user" : {1 , 6} , "bot" : {3 , 6} , "user" : {0 , 6} , "bot" : {9 , 1} , "user" : {1 , 5} , "bot" : {4 , 7} , "user" : {9 , 3} , "bot" : {2 , 4} , "user" : {6 , 2} , "bot" : {9 , 2} , "user" : {7 , 1} , "bot" : {4 , 4} , "user" : {7 , 6} , "bot" : {8 , 9} , "user" : {7 , 0} , "bot" : {8 , 9} , "user" : {5 , 0} , "user" : {9 , 3} , "bot" : {4 , 8}},"result" : "bot"} 

indenté version (sans enlever '\ n')

{ 
"initUserGrid" : 
{ 
    { 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } 
, { 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } 
, { 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } 
, { 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 } 
, { 1 , 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 } 
, { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } 
, { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } 
, { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } 
, { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } 
, { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } 
} 

, 

"initBotGrid" : 
{ 
    { 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } 
, { 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } 
, { 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } 
, { 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 } 
, { 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } 
, { 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } 
, { 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } 
, { 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } 
, { 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } 
, { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } 
} 

, 

"moves" : { 
    "user" : {7 , 6} 
, "bot" : {0 , 6} 
, "user" : {2 , 9} 
, "bot" : {1 , 4} 
, "user" : {8 , 1} 
, "bot" : {2 , 4} 
, "user" : {9 , 9} 
, "bot" : {0 , 9} 
, "user" : {9 , 4} 
, "bot" : {3 , 2} 
, "bot" : {6 , 6} 
, "user" : {8 , 8} 
, "bot" : {4 , 0} 
, "bot" : {4 , 0} 
, "user" : {6 , 5} 
, "bot" : {2 , 7} 
, "user" : {3 , 3} 
, "user" : {4 , 4} 
, "bot" : {9 , 7} 
, "user" : {9 , 7} 
, "bot" : {1 , 9} 
, "user" : {8 , 3} 
, "bot" : {4 , 3} 
, "bot" : {7 , 8} 
, "user" : {0 , 4} 
, "bot" : {2 , 2} 
, "bot" : {1 , 8} 
, "user" : {0 , 1} 
, "user" : {1 , 7} 
, "bot" : {2 , 4} 
, "user" : {4 , 9} 
, "bot" : {4 , 4} 
, "bot" : {1 , 7} 
, "user" : {5 , 8} 
, "bot" : {5 , 0} 
, "user" : {9 , 6} 
, "bot" : {9 , 7} 
, "user" : {0 , 9} 
, "bot" : {9 , 4} 
, "user" : {0 , 9} 
, "bot" : {1 , 1} 
, "bot" : {1 , 4} 
, "user" : {5 , 4} 
, "bot" : {1 , 1} 
, "user" : {7 , 8} 
, "bot" : {7 , 6} 
, "user" : {2 , 1} 
, "user" : {1 , 1} 
, "user" : {1 , 3} 
, "bot" : {5 , 6} 
, "user" : {2 , 7} 
, "bot" : {6 , 4} 
, "user" : {5 , 3} 
, "bot" : {9 , 8} 
, "user" : {7 , 4} 
, "bot" : {5 , 9} 
, "user" : {4 , 0} 
, "user" : {5 , 6} 
, "bot" : {9 , 1} 
, "user" : {2 , 8} 
, "bot" : {4 , 9} 
, "user" : {0 , 9} 
, "bot" : {3 , 9} 
, "user" : {2 , 1} 
, "bot" : {9 , 4} 
, "user" : {3 , 8} 
, "bot" : {4 , 3} 
, "user" : {7 , 1} 
, "bot" : {9 , 0} 
, "user" : {6 , 6} 
, "bot" : {8 , 8} 
, "user" : {9 , 4} 
, "bot" : {0 , 4} 
, "user" : {7 , 6} 
, "bot" : {6 , 2} 
, "user" : {1 , 9} 
, "bot" : {1 , 1} 
, "user" : {2 , 3} 
, "bot" : {7 , 6} 
, "user" : {0 , 4} 
, "bot" : {4 , 6} 
, "user" : {0 , 6} 
, "bot" : {7 , 1} 
, "user" : {3 , 9} 
, "bot" : {7 , 9} 
, "user" : {7 , 9} 
, "bot" : {3 , 7} 
, "user" : {1 , 8} 
, "bot" : {6 , 6} 
, "user" : {0 , 1} 
, "bot" : {2 , 3} 
, "user" : {6 , 1} 
, "bot" : {4 , 3} 
, "user" : {9 , 8} 
, "bot" : {4 , 1} 
, "bot" : {0 , 2} 
, "user" : {8 , 9} 
, "bot" : {0 , 0} 
, "bot" : {9 , 7} 
, "user" : {6 , 3} 
, "bot" : {4 , 8} 
, "user" : {6 , 6} 
, "bot" : {4 , 0} 
, "user" : {6 , 9} 
, "bot" : {0 , 3} 
, "user" : {6 , 6} 
, "bot" : {9 , 3} 
, "user" : {8 , 2} 
, "bot" : {2 , 5} 
, "user" : {7 , 0} 
, "user" : {2 , 6} 
, "bot" : {5 , 7} 
, "user" : {9 , 2} 
, "bot" : {9 , 7} 
, "user" : {2 , 0} 
, "user" : {8 , 8} 
, "bot" : {4 , 7} 
, "user" : {7 , 6} 
, "bot" : {6 , 0} 
, "user" : {3 , 5} 
, "bot" : {3 , 8} 
, "user" : {1 , 1} 
, "bot" : {5 , 2} 
, "user" : {9 , 2} 
, "bot" : {2 , 7} 
, "user" : {4 , 6} 
, "bot" : {5 , 4} 
, "user" : {8 , 1} 
, "bot" : {9 , 6} 
, "user" : {6 , 9} 
, "bot" : {7 , 3} 
, "user" : {0 , 7} 
, "bot" : {3 , 3} 
, "bot" : {4 , 9} 
, "user" : {6 , 1} 
, "bot" : {0 , 9} 
, "user" : {3 , 9} 
, "bot" : {3 , 3} 
, "user" : {5 , 8} 
, "bot" : {6 , 3} 
, "user" : {1 , 9} 
, "bot" : {5 , 0} 
, "user" : {3 , 9} 
, "bot" : {5 , 3} 
, "user" : {3 , 4} 
, "bot" : {8 , 4} 
, "user" : {3 , 2} 
, "user" : {6 , 0} 
, "user" : {0 , 8} 
, "bot" : {0 , 2} 
, "user" : {3 , 8} 
, "bot" : {8 , 0} 
, "user" : {5 , 6} 
, "bot" : {5 , 3} 
, "user" : {8 , 3} 
, "bot" : {2 , 1} 
, "bot" : {3 , 0} 
, "bot" : {1 , 8} 
, "user" : {1 , 6} 
, "bot" : {3 , 6} 
, "user" : {0 , 6} 
, "bot" : {9 , 1} 
, "user" : {1 , 5} 
, "bot" : {4 , 7} 
, "user" : {9 , 3} 
, "bot" : {2 , 4} 
, "user" : {6 , 2} 
, "bot" : {9 , 2} 
, "user" : {7 , 1} 
, "bot" : {4 , 4} 
, "user" : {7 , 6} 
, "bot" : {8 , 9} 
, "user" : {7 , 0} 
, "bot" : {8 , 9} 
, "user" : {5 , 0} 
, "user" : {9 , 3} 
, "bot" : {4 , 8} 
} 
, 
"result" : "bot" 
} 
+1

'{...}' est pour les objets, le contenu doit être des paires '' clé ': value'. Qu'est-ce que '{7, 6}' est censé être? – Barmar

+3

Si vous voulez écrire votre propre encodeur JSON, vous devriez peut-être lire la spécification JSON. C'est sur json.org. – Barmar

+0

Merci pour les réponses – cppxaxa

Répondre

3

Parce que ce n'est pas JSON valide. Vous avez des objets ({...}), qui ont besoin de la notation"key":"value". Si ceux-ci étaient des tableaux ([...]), ils seraient alors valides.

Qu'avez-vous utilisé pour générer ce "json" en premier lieu? Une bibliothèque JSON correcte n'aurait jamais fait une erreur comme ça. Si vous le faites manuellement, alors ... ne le faites pas.

+0

"J'ai généré la chaîne avec ma propre logique" ... Je crains le pire – code11

1

Votre JSON est invalide car vous pouvez facilement vérifier sur http://jsonlint.com/ par exemple.

Le premier problème que vous pouvez voir sur la 4ème ligne de votre enjolivé JSON:

{ 
"initUserGrid" : 
{ 
    { 
    ^This is wrong 

A { signifie le début de paires clé - valeur donc après la première { vous devez toujours une chaîne entre guillemets.

+0

techniquement c'est "début de l'objet", qui doit ensuite être suivi d'une clé. –

+0

@MarcB Oui, cela n'ajoute probablement pas grand chose aux commentaires et à votre réponse ... – jeroen

0

Mes modifications finales après modifications. Ma syntaxe pour array était erronée. Cette chaîne JSON était supposée être un enregistrement de jeu. Il y a la grille initiale, puis se déplace, et le résultat qui a gagné.

Merci à tous pour vos réponses.

{ 
    "initUserGrid": [ 
     [1, 1, 0, 0, 0, 0, 0, 0, 0, 0], 
     [1, 1, 1, 0, 0, 0, 0, 0, 0, 0], 
     [1, 1, 1, 0, 0, 0, 0, 0, 0, 0], 
     [1, 1, 1, 1, 0, 0, 0, 0, 0, 0], 
     [1, 1, 1, 1, 1, 0, 0, 0, 0, 0], 
     [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
     [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
     [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
     [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
     [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 
    ] 

    , 

    "initBotGrid": [ 
     [1, 1, 0, 0, 0, 0, 0, 0, 0, 0], 
     [1, 1, 1, 0, 0, 0, 0, 0, 0, 0], 
     [1, 1, 1, 0, 0, 0, 0, 0, 0, 0], 
     [1, 1, 1, 1, 0, 0, 0, 0, 0, 0], 
     [1, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
     [1, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
     [1, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
     [1, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
     [1, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
     [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 
    ] 

    , 

    "moves": [{ 
     "chance": "user", 
     "point": [9, 5], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [4, 2], 
     "hit": true 
    }, { 
     "chance": "bot", 
     "point": [5, 7], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [4, 0], 
     "hit": true 
    }, { 
     "chance": "user", 
     "point": [7, 5], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [7, 5], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [8, 2], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [8, 2], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [9, 8], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [0, 8], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [7, 7], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [2, 7], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [5, 6], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [4, 0], 
     "hit": true 
    }, { 
     "chance": "bot", 
     "point": [9, 8], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [1, 4], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [3, 5], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [2, 1], 
     "hit": true 
    }, { 
     "chance": "user", 
     "point": [8, 4], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [9, 5], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [5, 0], 
     "hit": true 
    }, { 
     "chance": "user", 
     "point": [1, 1], 
     "hit": true 
    }, { 
     "chance": "user", 
     "point": [5, 3], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [3, 4], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [2, 0], 
     "hit": true 
    }, { 
     "chance": "user", 
     "point": [5, 7], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [9, 8], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [8, 5], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [1, 1], 
     "hit": true 
    }, { 
     "chance": "bot", 
     "point": [3, 9], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [5, 6], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [7, 2], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [6, 9], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [6, 7], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [1, 0], 
     "hit": true 
    }, { 
     "chance": "user", 
     "point": [0, 4], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [3, 4], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [8, 6], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [7, 0], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [1, 2], 
     "hit": true 
    }, { 
     "chance": "user", 
     "point": [4, 7], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [0, 1], 
     "hit": true 
    }, { 
     "chance": "bot", 
     "point": [4, 4], 
     "hit": true 
    }, { 
     "chance": "bot", 
     "point": [6, 8], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [2, 8], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [4, 8], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [9, 9], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [4, 1], 
     "hit": true 
    }, { 
     "chance": "bot", 
     "point": [1, 0], 
     "hit": true 
    }, { 
     "chance": "bot", 
     "point": [3, 0], 
     "hit": true 
    }, { 
     "chance": "bot", 
     "point": [3, 2], 
     "hit": true 
    }, { 
     "chance": "bot", 
     "point": [8, 7], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [5, 4], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [0, 6], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [9, 6], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [5, 7], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [1, 0], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [4, 8], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [9, 9], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [3, 8], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [8, 1], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [6, 4], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [5, 6], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [8, 5], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [7, 3], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [6, 7], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [5, 1], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [8, 8], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [3, 2], 
     "hit": true 
    }, { 
     "chance": "user", 
     "point": [5, 4], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [3, 9], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [6, 8], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [6, 3], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [3, 9], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [4, 4], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [8, 5], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [0, 7], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [0, 9], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [9, 8], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [1, 3], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [2, 2], 
     "hit": true 
    }, { 
     "chance": "bot", 
     "point": [4, 3], 
     "hit": true 
    }, { 
     "chance": "bot", 
     "point": [7, 0], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [3, 6], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [3, 9], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [4, 5], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [2, 1], 
     "hit": true 
    }, { 
     "chance": "bot", 
     "point": [8, 9], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [9, 1], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [7, 1], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [3, 6], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [8, 8], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [5, 7], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [6, 7], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [2, 7], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [2, 3], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [1, 6], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [6, 0], 
     "hit": false 
    }, { 
     "chance": "user", 
     "point": [7, 0], 
     "hit": true 
    }, { 
     "chance": "user", 
     "point": [3, 1], 
     "hit": true 
    }, { 
     "chance": "user", 
     "point": [1, 5], 
     "hit": false 
    }, { 
     "chance": "bot", 
     "point": [5, 3], 
     "hit": false 
    }], 
    "result": "bot" 
}