[英]How can I use a JSON array generated in PHP in a javascript function?
[英]How can I use PHP array or json response in javascript?
让我简要地告诉你我的流程。
当我从index.phtml文件调用Ajax时,Ajax返回此响应。
Array
(
[Data] => Array
(
[0] => Array
(
[PlayerId] => 201503261611120312176355026
[PlayerName] => Leonel Messi
[PlayerPossition] => Striker
[PlayerPrice] => 15
[PlayerNationality] => Argentina
[ImageUrl] => messi.jpg
)
[1] => Array
(
[PlayerId] => 2015040711252904291525683176
[PlayerName] => Simon Mignolet
[PlayerPossition] => Goalkeeper
[PlayerPrice] => 12
[PlayerNationality] => Belgium
[ImageUrl] => Mignolet.jpg
)
[2] => Array
(
[PlayerId] => 201503301517200320707502096
[PlayerName] => Petr Cech
[PlayerPossition] => Goalkeeper
[PlayerPrice] => 10
[PlayerNationality] => czech Republic
[ImageUrl] => Petr.jpg
)
)
这是因为当我调用一个API时,它给了我这样的json字符串,并且正在对其进行解码,因此我们将得到上述结果。
{"Data":[{"PlayerId":"201503261611120312176355026","PlayerName":"Leonel Messi","PlayerPossition":"Striker","PlayerPrice":"15","PlayerNationality":"Argentina","ImageUrl":"messi.jpg"},
{"PlayerId":"2015040711252904291525683176","PlayerName":"Simon Mignolet","PlayerPossition":"Goalkeeper","PlayerPrice":"12","PlayerNationality":"Belgium","ImageUrl":"Mignolet.jpg"},
{"PlayerId":"201503301517200320707502096","PlayerName":"Petr Cech","PlayerPossition":"Goalkeeper","PlayerPrice":"10","PlayerNationality":"czech Republic","ImageUrl":"Petr.jpg"}]
}
最后,我的问题是什么。
我想在javascript中使用API的响应作为数组,因此,我正在对来自api的字符串进行json_decode,我应该将字符串或ket解码为json字符串,以便在javascript中进一步使用?我可以使用javascript中的json字符串作为数组吗?
如果没有,那么如何使用上面在javascript中显示的PHP数组作为数组。
需要帮助! 它只需要如何使用它的指导,我就这个主题看过很多问题,但没有正确地得到它。
这是完整的答复。
{"Data":[{"PlayerId":"201503261611120312176355026","PlayerName":"Leonel Messi","PlayerPossition":"Striker","PlayerPrice":"15","PlayerNationality":"Argentina","ImageUrl":"messi.jpg"},{"PlayerId":"2015040711252904291525683176","PlayerName":"Simon Mignolet","PlayerPossition":"Goalkeeper","PlayerPrice":"12","PlayerNationality":"Belgium","ImageUrl":"Mignolet.jpg"},{"PlayerId":"201503301517200320707502096","PlayerName":"Petr Cech","PlayerPossition":"Goalkeeper","PlayerPrice":"10","PlayerNationality":"czech Republic","ImageUrl":"Petr.jpg"},{"PlayerId":"2015040711263304331239304618","PlayerName":"Mario Balotelli","PlayerPossition":"Forward","PlayerPrice":"13","PlayerNationality":"Italy","ImageUrl":"Mario.jpg"},{"PlayerId":"2015040711153004301142178636","PlayerName":"John Terry","PlayerPossition":"Defender","PlayerPrice":"15","PlayerNationality":"England","ImageUrl":"Terry.jpg"},{"PlayerId":"2015033015173503352044674486","PlayerName":"Wayne Rooney","PlayerPossition":"Striker","PlayerPrice":"12","PlayerNationality":"England","ImageUrl":"Rooney.jpeg"},{"PlayerId":"2015040711274604461644280531","PlayerName":"Glen Johnson","PlayerPossition":"Defender","PlayerPrice":"12","PlayerNationality":"England","ImageUrl":"Johnson.jpg"},{"PlayerId":"201504071121180418898562745","PlayerName":"Wojciech Szczesny","PlayerPossition":"Goalkeeper","PlayerPrice":"12","PlayerNationality":"Poland","ImageUrl":"Szczesny.jpg"},{"PlayerId":"201504071121500450766284368","PlayerName":"Theo Walcott","PlayerPossition":"Forward","PlayerPrice":"13","PlayerNationality":"England","ImageUrl":"Walcott.jpg"},{"PlayerId":"0","PlayerName":"Petr Cech","PlayerPossition":"Goalkeeper","PlayerPrice":"10","PlayerNationality":"czech Republic","ImageUrl":"Petr.jpg"},{"PlayerId":"201504101708340434430387485","PlayerName":"Petr Cech","PlayerPossition":"Goalkeeper","PlayerPrice":"10","PlayerNationality":"czech Republic","ImageUrl":"Petr.jpg"},{"PlayerId":"2015032616092803281211739999","PlayerName":"Leonel Messi","PlayerPossition":"Striker","PlayerPrice":"15","PlayerNationality":"Argentina","ImageUrl":"messi.jpg"},{"PlayerId":"2015040711193204321670945005","PlayerName":"onny Evans","PlayerPossition":"Defender","PlayerPrice":"11","PlayerNationality":"England","ImageUrl":"Evans.jpg"},{"PlayerId":"201503311244410341392250417","PlayerName":"Diego Costa","PlayerPossition":"Striker","PlayerPrice":"10","PlayerNationality":"Span","ImageUrl":"diego.jpg"},{"PlayerId":"2015040711181504151664744966","PlayerName":"Wayne Rooney","PlayerPossition":"Forward","PlayerPrice":"15","PlayerNationality":"England","ImageUrl":"Rooney.jpg"},{"PlayerId":"201504071117260426381135053","PlayerName":"David de Gea","PlayerPossition":"Goalkeeper","PlayerPrice":"10","PlayerNationality":"Spain","ImageUrl":"David.jpg"},{"PlayerId":"2015040711224104411470384753","PlayerName":"Tomas Rosicky","PlayerPossition":"Midfielder","PlayerPrice":"12","PlayerNationality":"czech Republic","ImageUrl":"Rosicky.jpg"},{"PlayerId":"2015040711270704071555972375","PlayerName":"Steven Gerrard","PlayerPossition":"Midfielder","PlayerPrice":"15","PlayerNationality":"England","ImageUrl":"Gerrard.jpg"},{"PlayerId":"2015033112335503551596743050","PlayerName":"Diego Costa","PlayerPossition":"Striker","PlayerPrice":"10","PlayerNationality":"Brazil","ImageUrl":"diego.jpg"},{"PlayerId":"2015040711145204521635036421","PlayerName":"John Obi Mikel","PlayerPossition":"Midfielder","PlayerPrice":"11","PlayerNationality":"Nigeria","ImageUrl":"John.jpg"},{"PlayerId":"2015040711141204121342616372","PlayerName":"Didier Drogba","PlayerPossition":"Forward","PlayerPrice":"12","PlayerNationality":"C\u00f4te d\u2019Ivoire","ImageUrl":"Didier.jpg"},{"PlayerId":"201504071118430443104059381","PlayerName":"Michael Carrick","PlayerPossition":"Midfielder","PlayerPrice":"12","PlayerNationality":"England","ImageUrl":"Carrick.jpg"},{"PlayerId":"201504091258150415433179519","PlayerName":"Petr Cech1","PlayerPossition":"Goalkeeper","PlayerPrice":"10","PlayerNationality":"czech Republic","ImageUrl":"Petr.jpg"},{"PlayerId":"201504071123160416447868423","PlayerName":"Laurent Koscielny","PlayerPossition":"Defender","PlayerPrice":"12","PlayerNationality":"France","ImageUrl":"Koscielny.jpg"},{"PlayerId":"20150407111123042372799765","PlayerName":"Petr Cech","PlayerPossition":"Goalkeeper","PlayerPrice":"10","PlayerNationality":"czech Republic","ImageUrl":"Petr.jpg"}],"requestId":"1"}
这是errorImage。
我的js
$(document).ready(function () {
$.ajax({
url: '/home/getPlayers',
success: function (data) {
showPlayers(data);
}
});
function showPlayers(data) {
console.log(data);
data = JSON.parse(data);
console.log(data);
}
});
您可以使用JSON.parse(json);
要将其转换为对象,请使用该对象! :)
这是一个演示,向您展示返回的内容: http : //jsfiddle.net/Lekmnxzb/
得到你的JavaScript变量
var obj = {"Data":[{"PlayerId":"201503261611120312176355026","PlayerName":"Leonel Messi","PlayerPossition":"Striker","PlayerPrice":"15","PlayerNationality":"Argentina","ImageUrl":"messi.jpg"},{"PlayerId":"2015040711252904291525683176","PlayerName":"Simon Mignolet","PlayerPossition":"Goalkeeper","PlayerPrice":"12","PlayerNationality":"Belgium","ImageUrl":"Mignolet.jpg"},{"PlayerId":"201503301517200320707502096","PlayerName":"Petr Cech","PlayerPossition":"Goalkeeper","PlayerPrice":"10","PlayerNationality":"czech Republic","ImageUrl":"Petr.jpg"}]}
现在,您可以访问例如以下元素:
obj.Data[0].PlayerId
要解析或创建JSON字符串,有以下两个功能:
JSON.parse()
JSON.strigify()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.