Bird
Raised Fist0
Unityframework~20 mins

JSON serialization in Unity - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Unity JSON Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of this Unity JSON serialization code?

Consider the following C# code in Unity that serializes an object to JSON. What will be printed to the console?

Unity
using UnityEngine;

public class Player {
    public string name;
    public int score;
}

public class Test : MonoBehaviour {
    void Start() {
        Player player = new Player { name = "Alice", score = 42 };
        string json = JsonUtility.ToJson(player);
        Debug.Log(json);
    }
}
A{"name":"Alice","score":42}
B{"Name":"Alice","Score":42}
C{"name":Alice,"score":42}
D{"player":{"name":"Alice","score":42}}
Attempts:
2 left
💡 Hint

Look at how JsonUtility serializes public fields exactly as named.

🧠 Conceptual
intermediate
1:00remaining
Which Unity class is used for JSON serialization?

In Unity, which class provides methods to convert objects to and from JSON format?

AJsonParser
BJsonConvert
CJsonSerializer
DJsonUtility
Attempts:
2 left
💡 Hint

Think about Unity's built-in JSON support.

🔧 Debug
advanced
2:30remaining
Why does this Unity JSON deserialization code fail?

Given this code snippet, why does the deserialization not populate the fields?

Unity
using UnityEngine;

public class Player {
    private string name;
    private int score;
}

public class Test : MonoBehaviour {
    void Start() {
        string json = "{\"name\":\"Bob\",\"score\":100}";
        Player player = JsonUtility.FromJson<Player>(json);
        Debug.Log(player.name + ": " + player.score);
    }
}
AThe JSON string is malformed and causes an error.
BFields are private, so JsonUtility cannot access them.
CJsonUtility requires a constructor with parameters.
DThe Player class must inherit from MonoBehaviour.
Attempts:
2 left
💡 Hint

Check the access level of the fields being deserialized.

📝 Syntax
advanced
2:00remaining
Which code snippet correctly serializes a list of objects to JSON in Unity?

Unity's JsonUtility does not directly serialize lists. Which approach correctly serializes a list of Player objects?

AConvert the list to an array and serialize the array directly.
BSerialize the list directly using JsonUtility.ToJson(playersList).
CWrap the list in a container class and serialize the container.
DUse JsonUtility.SerializeList(playersList) method.
Attempts:
2 left
💡 Hint

Think about how JsonUtility handles complex types like lists.

🚀 Application
expert
3:00remaining
How to deserialize JSON with nested objects in Unity?

You have JSON data with nested objects like this:
{"player":{"name":"Eve","score":75}}
How do you deserialize it correctly in Unity?

ACreate a wrapper class with a public Player field and deserialize into it.
BDeserialize directly into Player class ignoring the wrapper.
CUse JsonUtility.FromJsonOverwrite to update an existing Player instance.
DModify the JSON string to remove the nested object before deserializing.
Attempts:
2 left
💡 Hint

Think about matching the JSON structure with your classes.

Practice

(1/5)
1.

What is the main purpose of JSON serialization in Unity?

easy
A. Create 3D models from code
B. Convert objects into text format and back
C. Compile scripts faster
D. Optimize game performance automatically

Solution

  1. Step 1: Understand JSON serialization

    JSON serialization means turning objects into text so they can be saved or sent.
  2. Step 2: Recognize Unity's use

    Unity uses JSON serialization to save object data as text and load it back.
  3. Final Answer:

    Convert objects into text format and back -> Option B
  4. Quick Check:

    JSON serialization = Convert objects to text and back [OK]
Hint: Think: saving objects as readable text [OK]
Common Mistakes:
  • Confusing serialization with 3D modeling
  • Thinking it speeds up script compilation
  • Assuming it optimizes performance automatically
2.

Which of the following is the correct way to serialize an object player to JSON in Unity?

Player player = new Player();
easy
A. string json = JsonUtility.ToJson(player);
B. string json = Json.Serialize(player);
C. string json = JsonUtility.FromJson(player);
D. string json = player.ToJson();

Solution

  1. Step 1: Identify Unity's serialization method

    Unity uses JsonUtility.ToJson() to convert objects to JSON text.
  2. Step 2: Check method usage

    JsonUtility.ToJson(player) correctly serializes the player object.
  3. Final Answer:

    string json = JsonUtility.ToJson(player); -> Option A
  4. Quick Check:

    Serialize with JsonUtility.ToJson() [OK]
Hint: Use JsonUtility.ToJson() to serialize objects [OK]
Common Mistakes:
  • Using FromJson() instead of ToJson()
  • Calling non-existent Json.Serialize() method
  • Trying to call ToJson() on the object itself
3.

Given the following code, what will be the output?

[System.Serializable]
public class Player {
    public string name = "Alex";
    public int score = 10;
}

Player player = new Player();
string json = JsonUtility.ToJson(player);
Debug.Log(json);
medium
A. {"name":"Alex","score":10}
B. {"name":"Alex"}
C. {"score":10}
D. Error: Player class not serializable

Solution

  1. Step 1: Check class serialization

    The Player class is marked [System.Serializable], so it can be converted to JSON.
  2. Step 2: Understand JsonUtility.ToJson output

    It converts all public fields to JSON key-value pairs, so name and score appear.
  3. Final Answer:

    {"name":"Alex","score":10} -> Option A
  4. Quick Check:

    Serializable class fields appear in JSON [OK]
Hint: Serializable class fields become JSON keys [OK]
Common Mistakes:
  • Forgetting [System.Serializable] attribute
  • Expecting private fields to appear
  • Thinking only one field is serialized
4.

What is wrong with this code snippet for deserializing JSON into a Player object?

string json = "{\"name\":\"Sam\", \"score\":15}";
Player player = JsonUtility.ToJson(json);
medium
A. JSON string is not properly formatted
B. Player class must be private
C. Using ToJson() instead of FromJson() for deserialization
D. Missing semicolon after JSON string

Solution

  1. Step 1: Identify method misuse

    JsonUtility.ToJson() is for serialization, not deserialization.
  2. Step 2: Correct method for deserialization

    Use JsonUtility.FromJson<Player>(json) to convert JSON text back to Player object.
  3. Final Answer:

    Using ToJson() instead of FromJson() for deserialization -> Option C
  4. Quick Check:

    Deserialize with FromJson(), not ToJson() [OK]
Hint: Use FromJson() to convert JSON text to object [OK]
Common Mistakes:
  • Mixing ToJson() and FromJson() methods
  • Assuming JSON string format is wrong
  • Thinking class visibility affects serialization
5.

You want to save a list of Player objects to JSON and load them back later. Which approach correctly handles this in Unity?

hard
A. Serialize the list directly with JsonUtility.ToJson(playersList)
B. Use JsonUtility.FromJson<List<Player>>(json) to deserialize
C. Serialize each Player separately and concatenate JSON strings
D. Wrap the list in a serializable container class and serialize that

Solution

  1. Step 1: Understand Unity's JsonUtility limitation

    JsonUtility cannot serialize lists directly; it needs a wrapper class.
  2. Step 2: Use a container class

    Create a [System.Serializable] class with a public List<Player> field and serialize that.
  3. Final Answer:

    Wrap the list in a serializable container class and serialize that -> Option D
  4. Quick Check:

    Wrap lists in container class for JSON serialization [OK]
Hint: Wrap lists in a class before serializing [OK]
Common Mistakes:
  • Trying to serialize lists directly
  • Concatenating JSON strings manually
  • Using FromJson with generic List type
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