如何将内部玩家变成对象?

时间:2018-12-31 10:24:59

标签: javascript json angular typescript object

如何将内部播放器(不是json)转换为对象?

{
    "players": "a:36:{i:0;a:3:{s:9:\"player_id\";i:108035;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:4:\"main\";}i:1;a:3:{s:9:\"player_id\";i:134595;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:4:\"main\";}i:2;a:3:{s:9:\"player_id\";i:107807;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:4:\"main\";}i:3;a:3:{s:9:\"player_id\";i:107795;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:4:\"main\";}i:4;a:3:{s:9:\"player_id\";i:108276;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:4:\"main\";}i:5;a:3:{s:9:\"player_id\";i:107799;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:4:\"main\";}i:6;a:3:{s:9:\"player_id\";i:107800;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:4:\"main\";}i:7;a:3:{s:9:\"player_id\";i:108332;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:4:\"main\";}i:8;a:3:{s:9:\"player_id\";i:107808;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:4:\"main\";}i:9;a:3:{s:9:\"player_id\";i:112332;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:4:\"main\";}i:10;a:3:{s:9:\"player_id\";i:107810;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:4:\"main\";}i:11;a:3:{s:9:\"player_id\";i:111463;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:3:\"sub\";}i:12;a:3:{s:9:\"player_id\";i:124654;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:3:\"sub\";}i:13;a:3:{s:9:\"player_id\";i:109277;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:3:\"sub\";}i:14;a:3:{s:9:\"player_id\";i:107805;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:3:\"sub\";}i:15;a:3:{s:9:\"player_id\";i:107802;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:3:\"sub\";}i:16;a:3:{s:9:\"player_id\";i:133261;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:3:\"sub\";}i:17;a:3:{s:9:\"player_id\";i:107796;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:3:\"sub\";}i:18;a:3:{s:9:\"player_id\";i:107934;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:4:\"main\";}i:19;a:3:{s:9:\"player_id\";i:107942;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:4:\"main\";}i:20;a:3:{s:9:\"player_id\";i:107935;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:4:\"main\";}i:21;a:3:{s:9:\"player_id\";i:106828;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:4:\"main\";}i:22;a:3:{s:9:\"player_id\";i:108400;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:4:\"main\";}i:23;a:3:{s:9:\"player_id\";i:107952;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:4:\"main\";}i:24;a:3:{s:9:\"player_id\";i:107940;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:4:\"main\";}i:25;a:3:{s:9:\"player_id\";i:107941;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:4:\"main\";}i:26;a:3:{s:9:\"player_id\";i:107658;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:4:\"main\";}i:27;a:3:{s:9:\"player_id\";i:107943;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:4:\"main\";}i:28;a:3:{s:9:\"player_id\";i:107949;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:4:\"main\";}i:29;a:3:{s:9:\"player_id\";i:107945;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:3:\"sub\";}i:30;a:3:{s:9:\"player_id\";i:107948;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:3:\"sub\";}i:31;a:3:{s:9:\"player_id\";i:127038;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:3:\"sub\";}i:32;a:3:{s:9:\"player_id\";i:107937;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:3:\"sub\";}i:33;a:3:{s:9:\"player_id\";i:107951;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:3:\"sub\";}i:34;a:3:{s:9:\"player_id\";i:107936;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:3:\"sub\";}i:35;a:3:{s:9:\"player_id\";i:107938;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:3:\"sub\";}}",
    "events": "a:13:{i:0;a:7:{s:4:\"type\";s:4:\"goal\";s:4:\"team\";s:5:\"team2\";s:4:\"time\";i:10;s:6:\"player\";s:11:\"David Silva\";s:4:\"note\";s:14:\"Bernardo Silva\";s:9:\"player_id\";i:107941;s:10:\"player2_id\";i:107952;}i:1;a:6:{s:4:\"type\";s:6:\"yellow\";s:4:\"team\";s:5:\"team2\";s:4:\"time\";i:32;s:6:\"player\";s:14:\"Sergio Agüero\";s:4:\"note\";s:0:\"\";s:9:\"player_id\";i:107943;}i:2;a:7:{s:4:\"type\";s:4:\"goal\";s:4:\"team\";s:5:\"team1\";s:4:\"time\";i:37;s:6:\"player\";s:16:\"Pierre Höjbjerg\";s:4:\"note\";s:0:\"\";s:9:\"player_id\";i:108332;s:10:\"player2_id\";s:0:\"\";}i:3;a:7:{s:4:\"type\";s:4:\"goal\";s:4:\"team\";s:5:\"team2\";s:4:\"time\";i:45;s:6:\"player\";s:17:\"James Ward-Prowse\";s:4:\"note\";s:0:\"\";s:9:\"player_id\";i:107800;s:10:\"player2_id\";s:0:\"\";}i:4;a:7:{s:4:\"type\";s:4:\"goal\";s:4:\"team\";s:5:\"team2\";s:4:\"time\";i:45;s:6:\"player\";s:14:\"Sergio Agüero\";s:4:\"note\";s:18:\"Olexandr Zinchenko\";s:9:\"player_id\";i:107943;s:10:\"player2_id\";i:108400;}i:5;a:7:{s:4:\"type\";s:3:\"sub\";s:4:\"team\";s:5:\"team1\";s:4:\"time\";i:46;s:6:\"player\";s:14:\"Nathan Redmond\";s:4:\"note\";s:12:\"Mario Lemina\";s:9:\"player_id\";i:107802;s:10:\"player2_id\";i:107808;}i:6;a:6:{s:4:\"type\";s:6:\"yellow\";s:4:\"team\";s:5:\"team1\";s:4:\"time\";i:58;s:6:\"player\";s:14:\"Charlie Austin\";s:4:\"note\";s:0:\"\";s:9:\"player_id\";i:107810;}i:7;a:7:{s:4:\"type\";s:3:\"sub\";s:4:\"team\";s:5:\"team1\";s:4:\"time\";i:59;s:6:\"player\";s:11:\"Yann Valery\";s:4:\"note\";s:11:\"Oriol Romeu\";s:9:\"player_id\";i:133261;s:10:\"player2_id\";i:107799;}i:8;a:7:{s:4:\"type\";s:3:\"sub\";s:4:\"team\";s:5:\"team1\";s:4:\"time\";i:68;s:6:\"player\";s:10:\"Shane Long\";s:4:\"note\";s:14:\"Charlie Austin\";s:9:\"player_id\";i:107805;s:10:\"player2_id\";i:107810;}i:9;a:6:{s:4:\"type\";s:6:\"yellow\";s:4:\"team\";s:5:\"team2\";s:4:\"time\";i:72;s:6:\"player\";s:15:\"Vincent Kompany\";s:4:\"note\";s:0:\"\";s:9:\"player_id\";i:107935;}i:10;a:6:{s:4:\"type\";s:6:\"yellow\";s:4:\"team\";s:5:\"team1\";s:4:\"time\";i:73;s:6:\"player\";s:12:\"Jan Bednarek\";s:4:\"note\";s:0:\"\";s:9:\"player_id\";i:107807;}i:11;a:7:{s:4:\"type\";s:3:\"sub\";s:4:\"team\";s:5:\"team2\";s:4:\"time\";i:73;s:6:\"player\";s:13:\"Gabriel Jesus\";s:4:\"note\";s:14:\"Sergio Agüero\";s:9:\"player_id\";i:107945;s:10:\"player2_id\";i:107943;}i:12;a:6:{s:4:\"type\";s:6:\"yellow\";s:4:\"team\";s:5:\"team2\";s:4:\"time\";i:78;s:6:\"player\";s:6:\"Danilo\";s:4:\"note\";s:0:\"\";s:9:\"player_id\";i:107942;}}",
    "stats": "a:17:{i:0;a:3:{s:5:\"title\";s:12:\"Yellow cards\";s:5:\"team1\";i:2;s:5:\"team2\";i:3;}i:1;a:3:{s:5:\"title\";s:9:\"Red cards\";s:5:\"team1\";i:1;s:5:\"team2\";i:0;}i:2;a:3:{s:5:\"title\";s:13:\"Substitutions\";s:5:\"team1\";i:3;s:5:\"team2\";i:3;}i:3;a:3:{s:5:\"title\";s:15:\"Ball possession\";s:5:\"team1\";i:25;s:5:\"team2\";i:75;}i:4;a:3:{s:5:\"title\";s:10:\"Free kicks\";s:5:\"team1\";i:12;s:5:\"team2\";i:12;}i:5;a:3:{s:5:\"title\";s:10:\"Goal kicks\";s:5:\"team1\";i:7;s:5:\"team2\";i:3;}i:6;a:3:{s:5:\"title\";s:9:\"Throw-ins\";s:5:\"team1\";i:13;s:5:\"team2\";i:24;}i:7;a:3:{s:5:\"title\";s:8:\"Offsides\";s:5:\"team1\";i:0;s:5:\"team2\";i:2;}i:8;a:3:{s:5:\"title\";s:12:\"Corner kicks\";s:5:\"team1\";i:3;s:5:\"team2\";i:8;}i:9;a:3:{s:5:\"title\";s:15:\"Shots on target\";s:5:\"team1\";i:4;s:5:\"team2\";i:6;}i:10;a:3:{s:5:\"title\";s:13:\"Goal attempts\";s:5:\"team1\";i:4;s:5:\"team2\";i:10;}i:11;a:3:{s:5:\"title\";s:16:\"Shots off target\";s:5:\"team1\";i:0;s:5:\"team2\";i:4;}i:12;a:3:{s:5:\"title\";s:5:\"Saves\";s:5:\"team1\";i:4;s:5:\"team2\";i:3;}i:13;a:3:{s:5:\"title\";s:5:\"Fouls\";s:5:\"team1\";i:12;s:5:\"team2\";i:10;}i:14;a:3:{s:5:\"title\";s:8:\"Injuries\";s:5:\"team1\";i:1;s:5:\"team2\";i:1;}i:15;a:3:{s:5:\"title\";s:13:\"Shots blocked\";s:5:\"team1\";i:0;s:5:\"team2\";i:4;}i:16;a:3:{s:5:\"title\";s:16:\"Yellow/red cards\";s:5:\"team1\";i:0;s:5:\"team2\";i:0;}}"
}

2 个答案:

答案 0 :(得分:1)

您可以快速使用正则表达式转换代码(但这不是安全的方法,必须使用循环来解析对象):

var obj = {
    "players": "a:36:{i:0;a:3:{s:9:\"player_id\";i:108035;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:4:\"main\";}i:1;a:3:{s:9:\"player_id\";i:134595;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:4:\"main\";}i:2;a:3:{s:9:\"player_id\";i:107807;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:4:\"main\";}i:3;a:3:{s:9:\"player_id\";i:107795;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:4:\"main\";}i:4;a:3:{s:9:\"player_id\";i:108276;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:4:\"main\";}i:5;a:3:{s:9:\"player_id\";i:107799;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:4:\"main\";}i:6;a:3:{s:9:\"player_id\";i:107800;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:4:\"main\";}i:7;a:3:{s:9:\"player_id\";i:108332;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:4:\"main\";}i:8;a:3:{s:9:\"player_id\";i:107808;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:4:\"main\";}i:9;a:3:{s:9:\"player_id\";i:112332;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:4:\"main\";}i:10;a:3:{s:9:\"player_id\";i:107810;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:4:\"main\";}i:11;a:3:{s:9:\"player_id\";i:111463;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:3:\"sub\";}i:12;a:3:{s:9:\"player_id\";i:124654;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:3:\"sub\";}i:13;a:3:{s:9:\"player_id\";i:109277;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:3:\"sub\";}i:14;a:3:{s:9:\"player_id\";i:107805;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:3:\"sub\";}i:15;a:3:{s:9:\"player_id\";i:107802;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:3:\"sub\";}i:16;a:3:{s:9:\"player_id\";i:133261;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:3:\"sub\";}i:17;a:3:{s:9:\"player_id\";i:107796;s:4:\"team\";s:5:\"team1\";s:4:\"role\";s:3:\"sub\";}i:18;a:3:{s:9:\"player_id\";i:107934;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:4:\"main\";}i:19;a:3:{s:9:\"player_id\";i:107942;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:4:\"main\";}i:20;a:3:{s:9:\"player_id\";i:107935;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:4:\"main\";}i:21;a:3:{s:9:\"player_id\";i:106828;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:4:\"main\";}i:22;a:3:{s:9:\"player_id\";i:108400;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:4:\"main\";}i:23;a:3:{s:9:\"player_id\";i:107952;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:4:\"main\";}i:24;a:3:{s:9:\"player_id\";i:107940;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:4:\"main\";}i:25;a:3:{s:9:\"player_id\";i:107941;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:4:\"main\";}i:26;a:3:{s:9:\"player_id\";i:107658;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:4:\"main\";}i:27;a:3:{s:9:\"player_id\";i:107943;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:4:\"main\";}i:28;a:3:{s:9:\"player_id\";i:107949;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:4:\"main\";}i:29;a:3:{s:9:\"player_id\";i:107945;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:3:\"sub\";}i:30;a:3:{s:9:\"player_id\";i:107948;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:3:\"sub\";}i:31;a:3:{s:9:\"player_id\";i:127038;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:3:\"sub\";}i:32;a:3:{s:9:\"player_id\";i:107937;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:3:\"sub\";}i:33;a:3:{s:9:\"player_id\";i:107951;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:3:\"sub\";}i:34;a:3:{s:9:\"player_id\";i:107936;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:3:\"sub\";}i:35;a:3:{s:9:\"player_id\";i:107938;s:4:\"team\";s:5:\"team2\";s:4:\"role\";s:3:\"sub\";}}",
    "events": "a:13:{i:0;a:7:{s:4:\"type\";s:4:\"goal\";s:4:\"team\";s:5:\"team2\";s:4:\"time\";i:10;s:6:\"player\";s:11:\"David Silva\";s:4:\"note\";s:14:\"Bernardo Silva\";s:9:\"player_id\";i:107941;s:10:\"player2_id\";i:107952;}i:1;a:6:{s:4:\"type\";s:6:\"yellow\";s:4:\"team\";s:5:\"team2\";s:4:\"time\";i:32;s:6:\"player\";s:14:\"Sergio Agüero\";s:4:\"note\";s:0:\"\";s:9:\"player_id\";i:107943;}i:2;a:7:{s:4:\"type\";s:4:\"goal\";s:4:\"team\";s:5:\"team1\";s:4:\"time\";i:37;s:6:\"player\";s:16:\"Pierre Höjbjerg\";s:4:\"note\";s:0:\"\";s:9:\"player_id\";i:108332;s:10:\"player2_id\";s:0:\"\";}i:3;a:7:{s:4:\"type\";s:4:\"goal\";s:4:\"team\";s:5:\"team2\";s:4:\"time\";i:45;s:6:\"player\";s:17:\"James Ward-Prowse\";s:4:\"note\";s:0:\"\";s:9:\"player_id\";i:107800;s:10:\"player2_id\";s:0:\"\";}i:4;a:7:{s:4:\"type\";s:4:\"goal\";s:4:\"team\";s:5:\"team2\";s:4:\"time\";i:45;s:6:\"player\";s:14:\"Sergio Agüero\";s:4:\"note\";s:18:\"Olexandr Zinchenko\";s:9:\"player_id\";i:107943;s:10:\"player2_id\";i:108400;}i:5;a:7:{s:4:\"type\";s:3:\"sub\";s:4:\"team\";s:5:\"team1\";s:4:\"time\";i:46;s:6:\"player\";s:14:\"Nathan Redmond\";s:4:\"note\";s:12:\"Mario Lemina\";s:9:\"player_id\";i:107802;s:10:\"player2_id\";i:107808;}i:6;a:6:{s:4:\"type\";s:6:\"yellow\";s:4:\"team\";s:5:\"team1\";s:4:\"time\";i:58;s:6:\"player\";s:14:\"Charlie Austin\";s:4:\"note\";s:0:\"\";s:9:\"player_id\";i:107810;}i:7;a:7:{s:4:\"type\";s:3:\"sub\";s:4:\"team\";s:5:\"team1\";s:4:\"time\";i:59;s:6:\"player\";s:11:\"Yann Valery\";s:4:\"note\";s:11:\"Oriol Romeu\";s:9:\"player_id\";i:133261;s:10:\"player2_id\";i:107799;}i:8;a:7:{s:4:\"type\";s:3:\"sub\";s:4:\"team\";s:5:\"team1\";s:4:\"time\";i:68;s:6:\"player\";s:10:\"Shane Long\";s:4:\"note\";s:14:\"Charlie Austin\";s:9:\"player_id\";i:107805;s:10:\"player2_id\";i:107810;}i:9;a:6:{s:4:\"type\";s:6:\"yellow\";s:4:\"team\";s:5:\"team2\";s:4:\"time\";i:72;s:6:\"player\";s:15:\"Vincent Kompany\";s:4:\"note\";s:0:\"\";s:9:\"player_id\";i:107935;}i:10;a:6:{s:4:\"type\";s:6:\"yellow\";s:4:\"team\";s:5:\"team1\";s:4:\"time\";i:73;s:6:\"player\";s:12:\"Jan Bednarek\";s:4:\"note\";s:0:\"\";s:9:\"player_id\";i:107807;}i:11;a:7:{s:4:\"type\";s:3:\"sub\";s:4:\"team\";s:5:\"team2\";s:4:\"time\";i:73;s:6:\"player\";s:13:\"Gabriel Jesus\";s:4:\"note\";s:14:\"Sergio Agüero\";s:9:\"player_id\";i:107945;s:10:\"player2_id\";i:107943;}i:12;a:6:{s:4:\"type\";s:6:\"yellow\";s:4:\"team\";s:5:\"team2\";s:4:\"time\";i:78;s:6:\"player\";s:6:\"Danilo\";s:4:\"note\";s:0:\"\";s:9:\"player_id\";i:107942;}}",
    "stats": "a:17:{i:0;a:3:{s:5:\"title\";s:12:\"Yellow cards\";s:5:\"team1\";i:2;s:5:\"team2\";i:3;}i:1;a:3:{s:5:\"title\";s:9:\"Red cards\";s:5:\"team1\";i:1;s:5:\"team2\";i:0;}i:2;a:3:{s:5:\"title\";s:13:\"Substitutions\";s:5:\"team1\";i:3;s:5:\"team2\";i:3;}i:3;a:3:{s:5:\"title\";s:15:\"Ball possession\";s:5:\"team1\";i:25;s:5:\"team2\";i:75;}i:4;a:3:{s:5:\"title\";s:10:\"Free kicks\";s:5:\"team1\";i:12;s:5:\"team2\";i:12;}i:5;a:3:{s:5:\"title\";s:10:\"Goal kicks\";s:5:\"team1\";i:7;s:5:\"team2\";i:3;}i:6;a:3:{s:5:\"title\";s:9:\"Throw-ins\";s:5:\"team1\";i:13;s:5:\"team2\";i:24;}i:7;a:3:{s:5:\"title\";s:8:\"Offsides\";s:5:\"team1\";i:0;s:5:\"team2\";i:2;}i:8;a:3:{s:5:\"title\";s:12:\"Corner kicks\";s:5:\"team1\";i:3;s:5:\"team2\";i:8;}i:9;a:3:{s:5:\"title\";s:15:\"Shots on target\";s:5:\"team1\";i:4;s:5:\"team2\";i:6;}i:10;a:3:{s:5:\"title\";s:13:\"Goal attempts\";s:5:\"team1\";i:4;s:5:\"team2\";i:10;}i:11;a:3:{s:5:\"title\";s:16:\"Shots off target\";s:5:\"team1\";i:0;s:5:\"team2\";i:4;}i:12;a:3:{s:5:\"title\";s:5:\"Saves\";s:5:\"team1\";i:4;s:5:\"team2\";i:3;}i:13;a:3:{s:5:\"title\";s:5:\"Fouls\";s:5:\"team1\";i:12;s:5:\"team2\";i:10;}i:14;a:3:{s:5:\"title\";s:8:\"Injuries\";s:5:\"team1\";i:1;s:5:\"team2\";i:1;}i:15;a:3:{s:5:\"title\";s:13:\"Shots blocked\";s:5:\"team1\";i:0;s:5:\"team2\";i:4;}i:16;a:3:{s:5:\"title\";s:16:\"Yellow/red cards\";s:5:\"team1\";i:0;s:5:\"team2\";i:0;}}"
}

//This code need to be improved ! With loop! (Replace regex by loop parsing)

Object.values(obj).forEach((str) => {
  str = "{"+str+"}";
  str = str.replace(/([asi](?:\:[0-9]+)*):/g, '"$1":');
  str = str.replace(/;/g, ',');
  str = str.replace(/}"/g, '},"');
  str = str.replace(/,}/g, '}');
  
  str = str.replace(/"i":([0-9]*),"(a:[0-9]+)":{/g, '"$2_$1":{');
  
  //console.log(str);

  console.log(JSON.parse(str))
});

输出:

{
  "a:36": {
    "a:3_0": {
      "s:9": "player_id",
      "i": 108035,
      "s:4": "main",
      "s:5": "team1"
    },
    "a:3_1": {
      "s:9": "player_id",
      "i": 134595,
      "s:4": "main",
      "s:5": "team1"
    },
    "a:3_2": {
      "s:9": "player_id",
      "i": 107807,
      "s:4": "main",
      "s:5": "team1"
    },
    "a:3_3": {
      "s:9": "player_id",
      "i": 107795,
      "s:4": "main",
      "s:5": "team1"
    },
    "a:3_4": {
      "s:9": "player_id",
      "i": 108276,
      "s:4": "main",
      "s:5": "team1"
    },
    "a:3_5": {
      "s:9": "player_id",
      "i": 107799,
      "s:4": "main",
      "s:5": "team1"
    },
    "a:3_6": {
      "s:9": "player_id",
      "i": 107800,
      "s:4": "main",
      "s:5": "team1"
    },
    "a:3_7": {
      "s:9": "player_id",
      "i": 108332,
      "s:4": "main",
      "s:5": "team1"
    },
    "a:3_8": {
      "s:9": "player_id",
      "i": 107808,
      "s:4": "main",
      "s:5": "team1"
    },
    "a:3_9": {
      "s:9": "player_id",
      "i": 112332,
      "s:4": "main",
      "s:5": "team1"
    },
    "a:3_10": {
      "s:9": "player_id",
      "i": 107810,
      "s:4": "main",
      "s:5": "team1"
    },
    "a:3_11": {
      "s:9": "player_id",
      "i": 111463,
      "s:4": "role",
      "s:5": "team1",
      "s:3": "sub"
    },
    "a:3_12": {
      "s:9": "player_id",
      "i": 124654,
      "s:4": "role",
      "s:5": "team1",
      "s:3": "sub"
    },
    "a:3_13": {
      "s:9": "player_id",
      "i": 109277,
      "s:4": "role",
      "s:5": "team1",
      "s:3": "sub"
    },
    "a:3_14": {
      "s:9": "player_id",
      "i": 107805,
      "s:4": "role",
      "s:5": "team1",
      "s:3": "sub"
    },
    "a:3_15": {
      "s:9": "player_id",
      "i": 107802,
      "s:4": "role",
      "s:5": "team1",
      "s:3": "sub"
    },
    "a:3_16": {
      "s:9": "player_id",
      "i": 133261,
      "s:4": "role",
      "s:5": "team1",
      "s:3": "sub"
    },
    "a:3_17": {
      "s:9": "player_id",
      "i": 107796,
      "s:4": "role",
      "s:5": "team1",
      "s:3": "sub"
    },
    "a:3_18": {
      "s:9": "player_id",
      "i": 107934,
      "s:4": "main",
      "s:5": "team2"
    },
    "a:3_19": {
      "s:9": "player_id",
      "i": 107942,
      "s:4": "main",
      "s:5": "team2"
    },
    "a:3_20": {
      "s:9": "player_id",
      "i": 107935,
      "s:4": "main",
      "s:5": "team2"
    },
    "a:3_21": {
      "s:9": "player_id",
      "i": 106828,
      "s:4": "main",
      "s:5": "team2"
    },
    "a:3_22": {
      "s:9": "player_id",
      "i": 108400,
      "s:4": "main",
      "s:5": "team2"
    },
    "a:3_23": {
      "s:9": "player_id",
      "i": 107952,
      "s:4": "main",
      "s:5": "team2"
    },
    "a:3_24": {
      "s:9": "player_id",
      "i": 107940,
      "s:4": "main",
      "s:5": "team2"
    },
    "a:3_25": {
      "s:9": "player_id",
      "i": 107941,
      "s:4": "main",
      "s:5": "team2"
    },
    "a:3_26": {
      "s:9": "player_id",
      "i": 107658,
      "s:4": "main",
      "s:5": "team2"
    },
    "a:3_27": {
      "s:9": "player_id",
      "i": 107943,
      "s:4": "main",
      "s:5": "team2"
    },
    "a:3_28": {
      "s:9": "player_id",
      "i": 107949,
      "s:4": "main",
      "s:5": "team2"
    },
    "a:3_29": {
      "s:9": "player_id",
      "i": 107945,
      "s:4": "role",
      "s:5": "team2",
      "s:3": "sub"
    },
    "a:3_30": {
      "s:9": "player_id",
      "i": 107948,
      "s:4": "role",
      "s:5": "team2",
      "s:3": "sub"
    },
    "a:3_31": {
      "s:9": "player_id",
      "i": 127038,
      "s:4": "role",
      "s:5": "team2",
      "s:3": "sub"
    },
    "a:3_32": {
      "s:9": "player_id",
      "i": 107937,
      "s:4": "role",
      "s:5": "team2",
      "s:3": "sub"
    },
    "a:3_33": {
      "s:9": "player_id",
      "i": 107951,
      "s:4": "role",
      "s:5": "team2",
      "s:3": "sub"
    },
    "a:3_34": {
      "s:9": "player_id",
      "i": 107936,
      "s:4": "role",
      "s:5": "team2",
      "s:3": "sub"
    },
    "a:3_35": {
      "s:9": "player_id",
      "i": 107938,
      "s:4": "role",
      "s:5": "team2",
      "s:3": "sub"
    }
  }
}
{
  "a:13": {
    "a:7_0": {
      "s:4": "note",
      "s:5": "team2",
      "i": 107952,
      "s:6": "player",
      "s:11": "David Silva",
      "s:14": "Bernardo Silva",
      "s:9": "player_id",
      "s:10": "player2_id"
    },
    "a:6_1": {
      "s:4": "note",
      "s:6": "player",
      "s:5": "team2",
      "i": 107943,
      "s:14": "Sergio Agüero",
      "s:0": "",
      "s:9": "player_id"
    },
    "a:7_2": {
      "s:4": "note",
      "s:5": "team1",
      "i": 108332,
      "s:6": "player",
      "s:16": "Pierre Höjbjerg",
      "s:0": "",
      "s:9": "player_id",
      "s:10": "player2_id"
    },
    "a:7_3": {
      "s:4": "note",
      "s:5": "team2",
      "i": 107800,
      "s:6": "player",
      "s:17": "James Ward-Prowse",
      "s:0": "",
      "s:9": "player_id",
      "s:10": "player2_id"
    },
    "a:7_4": {
      "s:4": "note",
      "s:5": "team2",
      "i": 108400,
      "s:6": "player",
      "s:14": "Sergio Agüero",
      "s:18": "Olexandr Zinchenko",
      "s:9": "player_id",
      "s:10": "player2_id"
    },
    "a:7_5": {
      "s:4": "note",
      "s:3": "sub",
      "s:5": "team1",
      "i": 107808,
      "s:6": "player",
      "s:14": "Nathan Redmond",
      "s:12": "Mario Lemina",
      "s:9": "player_id",
      "s:10": "player2_id"
    },
    "a:6_6": {
      "s:4": "note",
      "s:6": "player",
      "s:5": "team1",
      "i": 107810,
      "s:14": "Charlie Austin",
      "s:0": "",
      "s:9": "player_id"
    },
    "a:7_7": {
      "s:4": "note",
      "s:3": "sub",
      "s:5": "team1",
      "i": 107799,
      "s:6": "player",
      "s:11": "Oriol Romeu",
      "s:9": "player_id",
      "s:10": "player2_id"
    },
    "a:7_8": {
      "s:4": "note",
      "s:3": "sub",
      "s:5": "team1",
      "i": 107810,
      "s:6": "player",
      "s:10": "player2_id",
      "s:14": "Charlie Austin",
      "s:9": "player_id"
    },
    "a:6_9": {
      "s:4": "note",
      "s:6": "player",
      "s:5": "team2",
      "i": 107935,
      "s:15": "Vincent Kompany",
      "s:0": "",
      "s:9": "player_id"
    },
    "a:6_10": {
      "s:4": "note",
      "s:6": "player",
      "s:5": "team1",
      "i": 107807,
      "s:12": "Jan Bednarek",
      "s:0": "",
      "s:9": "player_id"
    },
    "a:7_11": {
      "s:4": "note",
      "s:3": "sub",
      "s:5": "team2",
      "i": 107943,
      "s:6": "player",
      "s:13": "Gabriel Jesus",
      "s:14": "Sergio Agüero",
      "s:9": "player_id",
      "s:10": "player2_id"
    },
    "a:6_12": {
      "s:4": "note",
      "s:6": "Danilo",
      "s:5": "team2",
      "i": 107942,
      "s:0": "",
      "s:9": "player_id"
    }
  }
}
{
  "a:17": {
    "a:3_0": {
      "s:5": "team2",
      "s:12": "Yellow cards",
      "i": 3
    },
    "a:3_1": {
      "s:5": "team2",
      "s:9": "Red cards",
      "i": 0
    },
    "a:3_2": {
      "s:5": "team2",
      "s:13": "Substitutions",
      "i": 3
    },
    "a:3_3": {
      "s:5": "team2",
      "s:15": "Ball possession",
      "i": 75
    },
    "a:3_4": {
      "s:5": "team2",
      "s:10": "Free kicks",
      "i": 12
    },
    "a:3_5": {
      "s:5": "team2",
      "s:10": "Goal kicks",
      "i": 3
    },
    "a:3_6": {
      "s:5": "team2",
      "s:9": "Throw-ins",
      "i": 24
    },
    "a:3_7": {
      "s:5": "team2",
      "s:8": "Offsides",
      "i": 2
    },
    "a:3_8": {
      "s:5": "team2",
      "s:12": "Corner kicks",
      "i": 8
    },
    "a:3_9": {
      "s:5": "team2",
      "s:15": "Shots on target",
      "i": 6
    },
    "a:3_10": {
      "s:5": "team2",
      "s:13": "Goal attempts",
      "i": 10
    },
    "a:3_11": {
      "s:5": "team2",
      "s:16": "Shots off target",
      "i": 4
    },
    "a:3_12": {
      "s:5": "team2",
      "i": 3
    },
    "a:3_13": {
      "s:5": "team2",
      "i": 10
    },
    "a:3_14": {
      "s:5": "team2",
      "s:8": "Injuries",
      "i": 1
    },
    "a:3_15": {
      "s:5": "team2",
      "s:13": "Shots blocked",
      "i": 4
    },
    "a:3_16": {
      "s:5": "team2",
      "s:16": "Yellow/red cards",
      "i": 0
    }
  }
}

答案 1 :(得分:-1)

我认为您想将json字符串转换为json对象?

然后您可以使用

https://www.w3schools.com/jsref/jsref_parse_json.asp