1

let me show you my flow briefly.

when I am calling an Ajax from the index.phtml file the ajax returns me this response.

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

This is because of When I am calling an API it is giving me the json string like this and I am decoding it so we will get the above out put.

{"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"}]
}

Finally what is my questions are.

  1. I want to use the response of API in javascript as array so,I am doing json_decode on the string coming from the api,I should decode the string or ket as it is as a json String for further use in javascript?if yes then how can I use the json string in javascript as array?

  2. if no then how can I use the PHP array that I have shown above in javascript as array.?

Help is needed! It just need the guidance that how to use it, i have seen manny question on this topic but not getting it properly.

This is the full response..

{"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"}

This is the errorImage..

enter image description here

My 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);
                        }
                    });
14
  • if you want that JSON string used by your javascript, then you don't really need to decode it at all Commented May 11, 2015 at 6:28
  • so how can i use that json string as an array I have tried with data.Data,data['Data'] where datais var and 'Data is the first key'.but its not working Commented May 11, 2015 at 6:29
  • Have a look on Article: api.jquery.com/jquery.parsejson it take json string and parse it into array than you can run a look on that array values. Commented May 11, 2015 at 6:30
  • @Daedalus means Data is a key and it has array Commented May 11, 2015 at 6:33
  • after doing JSON.parse(json); I am doing data.Data[0]it is giving me the object but the problem is an error Uncaught SyntaxError: Unexpected token u what can be reason behind that? Commented May 11, 2015 at 6:37

2 Answers 2

2

get your JavaScript variable with

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"}]}

Now you can access the elements like this for example:

obj.Data[0].PlayerId

To parse or create JSON strings, there are these two functions:

JSON.parse()
JSON.strigify()
Sign up to request clarification or add additional context in comments.

2 Comments

actually what I have done I have called an Ajax and in its success function I have called an another function showData() and I have passed the response of the success function to the showData() in that function I showing the data.Data[0];its not working undefined 0 error but when I am doing JSON.parase() and printing data.Data its giving me the object but the error is also there Uncaught SyntaxError: Unexpected token u
@BhavikJoshi We can't see your screen, and unless you read back to us what I told you to look for, we can't help you further.
2

You can use JSON.parse(json); to convert it into object, the use that object! :)

Here's a demo to show you what it returns: http://jsfiddle.net/Lekmnxzb/

7 Comments

I have done this but I facing this errors Uncaught SyntaxError: Unexpected token u
I do a test, you can take a look at this giving-link above! (in your developper tools)
no json outputing correctly there is no error for that
yeah, there is an error in your output json. I just add ] before the last of the closing brace }
So you should to check the code that generate your json file!
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.