【发布时间】:2016-11-03 06:57:39
【问题描述】:
问题是当我的PHP文件获取Method post发送的数据时:
$play=$_POST['players'];
结果是:
"[{'type_player': 'Hombres Bestia' ,'mo': 6, 'st': 3, 'de': 3, 'ar': 8, 'N': 'FGM' , 'D': 'AP' , 'price': 60000, 'habs': [20], 'max_number': 16 }, {'type_player': 'Guerreros del Caos' ,'mo': 5, 'st': 4, 'de': 3, 'ar': 9, 'N': 'FGM' , 'D': 'AP' , 'price': 100000, 'habs': [], 'max_number': 4 }, {'type_player': 'Minotauro' ,'mo': 5, 'st': 5, 'de': 2, 'ar': 8, 'N': 'FM' , 'D': 'AGP' , 'price': 150000, 'habs': [3,15,20,32,34,71], 'max_number': 1 }, {'type_player': 'qwe' ,'mo': 2, 'st': 3, 'de': 4, 'ar': 5, 'N': 'P' , 'D': 'M' , 'price': 132, 'habs': [0], 'max_number': 2 }]"
当我 json_decode 时,
$players=json_decode($play,true);
它返回:
[{'type_player': 'Hombres Bestia' ,'mo': 6, 'st': 3, 'de': 3, 'ar': 8, 'N': 'FGM' , 'D': 'AP' , 'price': 60000, 'habs': [20], 'max_number': 16 }, {'type_player': 'Guerreros del Caos' ,'mo': 5, 'st': 4, 'de': 3, 'ar': 9, 'N': 'FGM' , 'D': 'AP' , 'price': 100000, 'habs': [], 'max_number': 4 }, {'type_player': 'Minotauro' ,'mo': 5, 'st': 5, 'de': 2, 'ar': 8, 'N': 'FM' , 'D': 'AGP' , 'price': 150000, 'habs': [3,15,20,32,34,71], 'max_number': 1 }, {'type_player': 'qwe' ,'mo': 2, 'st': 3, 'de': 4, 'ar': 5, 'N': 'P' , 'D': 'M' , 'price': 132, 'habs': [0], 'max_number': 2 }]
问题是,当我尝试在 php 中获取任何内容时,我不能。例如:
echo "mo:".$players[0]['mo'];
返回:
mo:[
有什么帮助吗?
正如你所建议的,我改变了发送数据的方式,现在当我 $_POST 它返回时:
"[{\"type_player\": \"Hombres Bestia\" ,\"mo\": 6, \"st\": 3, \"de\": 3, \"ar\": 8, \"N\": \"FGM\" , \"D\": \"AP\" , \"price\": 60000, \"habs\": [20], \"max_number\": 16 }, {\"type_player\": \"Guerreros del Caos\" ,\"mo\": 5, \"st\": 4, \"de\": 3, \"ar\": 9, \"N\": \"FGM\" , \"D\": \"AP\" , \"price\": 100000, \"habs\": [], \"max_number\": 4 }, {\"type_player\": \"Minotauro\" ,\"mo\": 5, \"st\": 5, \"de\": 2, \"ar\": 8, \"N\": \"FM\" , \"D\": \"AGP\" , \"price\": 150000, \"habs\": [3,15,20,32,34,71], \"max_number\": 1 }, {\"type_player\": \"qdwqw\" ,\"mo\": 2, \"st\": 2, \"de\": 2, \"ar\": 1, \"N\": \"P\" , \"D\": \"F\" , \"price\": 13244, \"habs\": [0], \"max_number\": 1 }]"
我解码它并返回:
[{"type_player": "Hombres Bestia" ,"mo": 6, "st": 3, "de": 3, "ar": 8, "N": "FGM" , "D": "AP" , "price": 60000, "habs": [20], "max_number": 16 }, {"type_player": "Guerreros del Caos" ,"mo": 5, "st": 4, "de": 3, "ar": 9, "N": "FGM" , "D": "AP" , "price": 100000, "habs": [], "max_number": 4 }, {"type_player": "Minotauro" ,"mo": 5, "st": 5, "de": 2, "ar": 8, "N": "FM" , "D": "AGP" , "price": 150000, "habs": [3,15,20,32,34,71], "max_number": 1 }, {"type_player": "qdwqw" ,"mo": 2, "st": 2, "de": 2, "ar": 1, "N": "P" , "D": "F" , "price": 13244, "habs": [0], "max_number": 1 }]
现在,它应该可以工作,但是当我尝试获取数据时,结果是一样的......进一步的答案? 提前致谢。
【问题讨论】:
-
你的 json 无效,因为 json 值用双引号而不是单引号括起来
-
所以,如果我用这个改变 $play 变量: $play=str_replace("'",'"',$play); 然后我解码,它会工作吗?它没有。
-
但您需要发送格式化的 json 数据。使用这个是 $play=str_replace("'",'"',$play); 如果任何值带有单引号,则不是 gud 意味着它被双引号替换,所以你不会这样做
-
那么,你有什么建议?你告诉我问题,但我没有看到解决方案。如果你能帮助我,我会感谢你
-
试试我的更新 2,它按预期工作