Bird
Raised Fist0
PHPprogramming~10 mins

JSON encoding and decoding in PHP - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to convert an array to a JSON string.

PHP
<?php
$array = ['name' => 'Alice', 'age' => 25];
$json = json_[1]($array);
echo $json;
?>
Drag options to blanks, or click blank then click option'
Astringify
Bdecode
Cparse
Dencode
Attempts:
3 left
💡 Hint
Common Mistakes
Using json_decode instead of json_encode.
Trying to use json_parse or json_stringify which do not exist in PHP.
2fill in blank
medium

Complete the code to convert a JSON string back to a PHP array.

PHP
<?php
$json = '{"name":"Bob","age":30}';
$array = json_[1]($json, true);
print_r($array);
?>
Drag options to blanks, or click blank then click option'
Adecode
Bstringify
Cparse
Dencode
Attempts:
3 left
💡 Hint
Common Mistakes
Using json_encode instead of json_decode.
Not passing true as the second argument to get an array.
3fill in blank
hard

Fix the error in the code to correctly decode JSON into an object.

PHP
<?php
$json = '{"city":"Paris","country":"France"}';
$obj = json_decode($json, [1]);
echo $obj->city;
?>
Drag options to blanks, or click blank then click option'
A0
Bfalse
Cnull
Dtrue
Attempts:
3 left
💡 Hint
Common Mistakes
Passing true and then trying to access properties with -> instead of array keys.
Passing null which defaults to false but can be confusing.
4fill in blank
hard

Fill both blanks to encode an array and then decode it back to an associative array.

PHP
<?php
$data = ['x' => 10, 'y' => 20];
$json = json_[1]($data);
$array = json_[2]($json, true);
print_r($array);
?>
Drag options to blanks, or click blank then click option'
Aencode
Bdecode
Cparse
Dstringify
Attempts:
3 left
💡 Hint
Common Mistakes
Using json_decode first or in the wrong order.
Not passing true to json_decode to get an array.
5fill in blank
hard

Fill all three blanks to encode a nested array and decode it back as an object.

PHP
<?php
$info = ['person' => ['name' => 'Eve', 'age' => 28]];
$json = json_[1]($info);
$obj = json_[2]($json, [3]);
echo $obj->person->name;
?>
Drag options to blanks, or click blank then click option'
Aencode
Bdecode
Cfalse
Dtrue
Attempts:
3 left
💡 Hint
Common Mistakes
Passing true to json_decode and then trying to access properties with ->.
Using json_decode before json_encode.

Practice

(1/5)
1. What does the PHP function json_encode() do?
easy
A. Converts PHP data into a JSON formatted string
B. Converts JSON string into PHP data
C. Validates JSON syntax
D. Reads JSON data from a file

Solution

  1. Step 1: Understand the purpose of json_encode()

    This function takes PHP variables like arrays or objects and converts them into a JSON string format.
  2. Step 2: Differentiate from json_decode()

    json_decode() does the opposite by converting JSON strings back to PHP data.
  3. Final Answer:

    Converts PHP data into a JSON formatted string -> Option A
  4. Quick Check:

    json_encode() = PHP to JSON string [OK]
Hint: json_encode() makes PHP data into JSON text [OK]
Common Mistakes:
  • Confusing json_encode() with json_decode()
  • Thinking json_encode() reads JSON from files
  • Assuming json_encode() validates JSON syntax
2. Which of the following is the correct syntax to decode a JSON string into a PHP array?
easy
A. $data = json_encode($jsonString, true);
B. $data = json_decode($jsonString, true);
C. $data = json_decode($jsonString);
D. $data = json_encode($jsonString);

Solution

  1. Step 1: Identify the function to decode JSON

    The function to convert JSON string to PHP data is json_decode().
  2. Step 2: Use the second parameter to get an array

    Passing true as the second argument returns an associative array instead of an object.
  3. Final Answer:

    $data = json_decode($jsonString, true); -> Option B
  4. Quick Check:

    json_decode() with true returns array [OK]
Hint: Use json_decode($json, true) for PHP arrays [OK]
Common Mistakes:
  • Using json_encode() instead of json_decode()
  • Omitting the second parameter to get an array
  • Passing true to json_encode() which is invalid
3. What will be the output of the following PHP code?
$arr = ['name' => 'Anna', 'age' => 25];
$json = json_encode($arr);
echo $json;
medium
A. {"name":"Anna","age":25}
B. Array
C. name: Anna, age: 25
D. Error: Cannot encode array

Solution

  1. Step 1: Understand json_encode output

    The function converts the PHP associative array into a JSON string with keys and values in double quotes.
  2. Step 2: Check the exact JSON string format

    The output is a JSON object string: {"name":"Anna","age":25} with escaped quotes when printed.
  3. Final Answer:

    {"name":"Anna","age":25} -> Option A
  4. Quick Check:

    json_encode() outputs JSON string [OK]
Hint: json_encode() outputs JSON string with quotes [OK]
Common Mistakes:
  • Expecting PHP array print instead of JSON string
  • Missing quotes around keys and values
  • Confusing output with plain text or error
4. Identify the error in this PHP code snippet:
$json = '{"fruit":"apple","count":3}';
$data = json_decode($json, true);
echo $data->fruit;
medium
A. json_decode cannot parse this JSON
B. Incorrect JSON string format
C. Missing second parameter in json_decode
D. Using object syntax on an array after json_decode

Solution

  1. Step 1: Check json_decode parameters

    The second parameter true makes json_decode return an associative array.
  2. Step 2: Accessing array with object syntax

    Using $data->fruit tries to access an object property, but $data is an array, so this causes an error.
  3. Final Answer:

    Using object syntax on an array after json_decode -> Option D
  4. Quick Check:

    json_decode(true) returns array, use $data['fruit'] [OK]
Hint: Use $data['key'] if json_decode(true) used [OK]
Common Mistakes:
  • Accessing array as object after json_decode(true)
  • Assuming JSON string is invalid
  • Forgetting to pass true for array output
5. You have a PHP array:
$data = ["id" => 101, "tags" => ["php", "json", "coding"]];

Which code correctly encodes this array to JSON and then decodes it back to a PHP object?
hard
A. $json = json_encode($data); $obj = json_decode($json, true);
B. $json = json_decode($data); $obj = json_encode($json);
C. $json = json_encode($data); $obj = json_decode($json);
D. $json = json_encode($data, true); $obj = json_decode($json, true);

Solution

  1. Step 1: Encode PHP array to JSON string

    Use json_encode($data) to convert the PHP array into a JSON string.
  2. Step 2: Decode JSON string back to PHP object

    Calling json_decode($json) without the second parameter returns a PHP object.
  3. Final Answer:

    $json = json_encode($data); $obj = json_decode($json); -> Option C
  4. Quick Check:

    Encode then decode without true returns object [OK]
Hint: json_decode() without true returns object [OK]
Common Mistakes:
  • Using json_decode before json_encode
  • Passing true to json_encode (invalid)
  • Decoding with true returns array, not object
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard