1

i am fetching an array from a PHP file and when I log the array on my console it displays as this: [{"name":"zdfad","email":"XXX","phone":"XXX","id":"0","level":"1"}] as a string and not the as an array.

how can I fix this? this is the code:

fetch("./php/getuser.php", { method: "GET" })
.then((res) => res.text())
.then((data) => {
    console.log(data);
  
});
3
  • 3
    Why are you using res.text() instead of res.json()? Commented Sep 29, 2021 at 3:44
  • use JSON.parse() Commented Sep 29, 2021 at 3:45
  • @Phil i totally forgot, thanks Commented Sep 29, 2021 at 3:47

2 Answers 2

4

You can use use the JavaScript JSON.parse function to turn the string into a literal data type:

JSON.parse("{ key: 'value' }");

Or, you can choose to use Response.json instead of text() so that you retrieve an object response.

Sign up to request clarification or add additional context in comments.

2 Comments

Using res.json() should definitely be the preferred approach
@Phil exactly, that solved it
2

Right now you are using text() which is asking fetch to read the response and resolve it as a string. See: https://developer.mozilla.org/en-US/docs/Web/API/Response/text

What you want is to replace .text() with .json() See: https://developer.mozilla.org/en-US/docs/Web/API/Response/json

This should work:

fetch("./php/getuser.php", { method: "GET" })
.then((res) => res.json())
.then((data) => {
    console.log(data);
});

Comments

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.