格式错误的 JSON 字符串需要更正 PHP
malformed JSON string needs correction for PHP
我用 cout 的组合制作了一个 c++ 程序,用于将输出作为 JSON 字符串,这样我就可以使用 json_decode 函数在 PHP 中对其进行解码。我用自己的逻辑生成了字符串。
我相信输出字符串有问题,但我花了几个小时也找不到它。
var_dump(json_decode($string, TRUE));给出
NULL
json_last_error_msg();给出
quoted object property name expected
json_last_error();给出
4
我尝试在 PHP5 中使用 json_decode($string, TRUE) 解码的原始字符串,平台:Ubuntu x64 14.04 LTS (apache2, php5, php5-json) 安装
{"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"}
缩进版本(不删除'\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"
}
因为那是无效的 JSON。您有对象 ({...}
),其中 REQUIRE "key":"value"
表示法。如果这些是数组 ([...]
),那么它们就是有效的。
你最初是用什么生成这个 "json" 的?一个合适的 JSON 库绝不会犯这样的错误。如果你是手动操作,那么......不要。
您的 json 无效,例如您可以在 http://jsonlint.com/ 上轻松检查。
你美化后的第4行可以看到的第一个问题json:
{
"initUserGrid" :
{
{
^ This is wrong
A {
表示键值对的开始,所以在第一个 {
之后你总是需要一个双引号字符串。
我修改后的Final changes。我的数组语法错误。这个 JSON 字符串应该是游戏记录。有初始格子,然后移动,结果谁赢了。
谢谢大家的回答。
{
"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"
}
我用 cout 的组合制作了一个 c++ 程序,用于将输出作为 JSON 字符串,这样我就可以使用 json_decode 函数在 PHP 中对其进行解码。我用自己的逻辑生成了字符串。 我相信输出字符串有问题,但我花了几个小时也找不到它。
var_dump(json_decode($string, TRUE));给出
NULL
json_last_error_msg();给出
quoted object property name expected
json_last_error();给出
4
我尝试在 PHP5 中使用 json_decode($string, TRUE) 解码的原始字符串,平台:Ubuntu x64 14.04 LTS (apache2, php5, php5-json) 安装
{"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"}
缩进版本(不删除'\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"
}
因为那是无效的 JSON。您有对象 ({...}
),其中 REQUIRE "key":"value"
表示法。如果这些是数组 ([...]
),那么它们就是有效的。
你最初是用什么生成这个 "json" 的?一个合适的 JSON 库绝不会犯这样的错误。如果你是手动操作,那么......不要。
您的 json 无效,例如您可以在 http://jsonlint.com/ 上轻松检查。
你美化后的第4行可以看到的第一个问题json:
{
"initUserGrid" :
{
{
^ This is wrong
A {
表示键值对的开始,所以在第一个 {
之后你总是需要一个双引号字符串。
我修改后的Final changes。我的数组语法错误。这个 JSON 字符串应该是游戏记录。有初始格子,然后移动,结果谁赢了。
谢谢大家的回答。
{
"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"
}