如何在javascript中使用PHP数组或json响应?

如何在javascript中使用PHP数组或json响应?,javascript,php,arrays,ajax,json,Javascript,Php,Arrays,Ajax,Json,让我简要介绍一下我的流程 当我从index.phtml文件调用Ajax时,Ajax会返回此响应 Array ( [Data] => Array ( [0] => Array ( [PlayerId] => 201503261611120312176355026 [PlayerName] => Leonel Mess

让我简要介绍一下我的流程

当我从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_解码,我应该将字符串或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"}
    
    这是错误图像

    我的js


    您可以使用
    JSON.parse(JSON)要将其转换为对象,请使用该对象!:)


    下面是一个演示,向您展示它返回的内容:

    您可以使用
    JSON.parse(JSON)要将其转换为对象,请使用该对象!:)


    下面是一个演示,向您展示它返回的内容:

    使用

    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()
    

    使用

    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()
    


    如果您希望javascript使用JSON字符串,那么您根本不需要对其进行解码,那么我如何将该JSON字符串用作我尝试过的数组data.data,data['data']其中datais var和“Data是第一个键”。但它不起作用。请看一看文章:它使用json字符串并将其解析到数组中,然后您就可以对该数组值运行一个查找。@Daedalus表示数据是一个键,在执行
    json.parse(json)之后,它具有数组
    我正在做
    data.data[0]
    它给了我对象,但问题是一个错误
    Uncaught SyntaxError:Unexpected token u
    这背后的原因是什么?如果希望javascript使用JSON字符串,那么你根本不需要对它进行解码,那么我怎样才能使用这个json字符串作为数组呢?我已经试过使用data.data,data['data']其中datais var和“Data是第一个键”。但它不起作用。请看一看文章:它使用json字符串并将其解析到数组中,然后您就可以对该数组值运行一个查找。@Daedalus表示数据是一个键,在执行
    json.parse(json)之后,它具有数组我正在做
    数据。数据[0]
    它正在给我对象,但问题是一个错误
    未捕获的语法错误:意外的标记u
    这背后的原因是什么?我已经做了这件事,但我面临这个错误
    未捕获的语法错误:意外的标记u
    我做了一个测试,你可以看看上面的这个给定链接!(在您的开发工具中)没有正确输出json没有错误是的,您的输出json中有错误。我只是将
    ]
    添加到最后一个右括号
    }
    之前,因此您应该检查生成json文件的代码!我已经这样做了,但是我面临这个错误
    未捕获的语法错误:意外的令牌u
    我做了一个测试,你可以看看上面的这个给定链接!(在您的开发工具中)没有正确输出json没有错误是的,您的输出json中有错误。我只是将
    ]
    添加到最后一个右括号
    }
    之前,因此您应该检查生成json文件的代码!实际上我所做的是调用了一个Ajax,在它的success函数中我调用了另一个函数showData(),我将success函数的响应传递给showData(),在该函数中我显示了data.data[0];未定义的0错误不起作用,但当我执行JSON.parase()和打印数据时。数据给了我对象,但错误也在那里
    未捕获的语法错误:意外标记u
    @BhavikJoshi我们看不到您的屏幕,除非您回读我告诉您要查找的内容,我们无法进一步帮助您。实际上,我所做的是调用一个Ajax,在它的success函数中,我调用了另一个函数showData(),并将success函数的响应传递给showData(),在该函数中,我显示了数据。数据[0];未定义的0错误不起作用,但当我执行JSON.parase()和打印数据时。数据给了我对象,但错误也在那里
    未捕获的语法错误:意外标记u
    @BhavikJoshi我们看不到您的屏幕,除非您回读我告诉您要查找的内容,否则我们无法进一步帮助您。