"topics": [
From the W he;p curriculum
TL;DR
(Three short sentences summarising everything below.)
1. The Mental Model
(Three short sentences max. Plain words.)
2. The Core Material
(Teach the topic clearly. Use ### subheadings for sub-skills. Show real
worked examples or real code blocks where useful.
Embed a single mermaid diagram inside this section when Rule #6
applies — use real labels, never duplicate the diagram elsewhere.)
3. Worked Example
(ONE concrete example end-to-end with numbers, code or quotes as
appropriate. No second diagram here — one per note.)
4. Key Takeaways
- 5-7 specific takeaway bullets, one short sentence each.
- 3-4 common mistakes the student should avoid.
5. Now Try It
(A single 15-minute exercise. What to do. What success looks like.)
============================================================
MERMAID SYNTAX (if you actually include diagrams)
============================================================
- Wrap any node text with parens, brackets or spaces in DOUBLE QUOTES:
A["Some text (with parens)"]
- Use ``mermaid fences. Use-->arrows, NEVER HTML entities like>`.
Working with JSON Topics
TL;DR
You're learning how to extract specific parts of a JSON structure, focusing on a key named "topics". We'll use a programming language to parse the JSON and then access the data associated with that "topics" key. This skill is crucial for handling data in web applications and many other programming tasks.
1. The Mental Model
Think of JSON as a set of nested boxes, like Russian dolls. Each box has a label (a key) and can contain either a value (like a number or text) or another box (an object or array). We're trying to find a specific box labeled "topics" and then see what's inside it.
2. The Core Material
JSON (JavaScript Object Notation) is a lightweight data-interchange format. It's easy for humans to read and write and easy for machines to parse and generate. It's built on two structures:
- A collection of name/value pairs (like a Python dictionary, Java
HashMap, or JavaScript object). - An ordered list of values (like a Python list, Java
ArrayList, or JavaScript array).
Understanding the Structure

Photo by Leandro Rossi on Pexels
A typical JSON structure might look like this:
{
"courseName": "W he;p",
"topicDetails": {
"primary": "JSON Parsing",
"secondary": ["Data Extraction", "Data Handling"]
},
"topics": [
"JSON Structure",
"Accessing Keys",
"Handling Arrays"
],
"isActive": true
}
In this example:
* The entire structure is an object (enclosed in {}).
* "courseName", "topicDetails", "topics", and "isActive" are keys.
* "W he;p", the object {...}, the array [...], and true are their corresponding values.
* Our target, "topics", has an array as its value.
Accessing Data with a Key

Photo by cottonbro studio on Pexels
To get the value associated with a specific key, you first need to parse the JSON string into a data structure that your programming language understands. Once parsed, you can typically access elements using bracket notation (data["key"]) or dot notation (data.key) depending on the language and how it handles JSON objects.
Let's say you're using Python. You'd use the json module.
import json
json_string = """
{
"courseName": "W he;p",
"topicDetails": {
"primary": "JSON Parsing",
"secondary": ["Data Extraction", "Data Handling"]
},
"topics": [
"JSON Structure",
"Accessing Keys",
"Handling Arrays"
],
"isActive": true
}
"""
# 1. Parse the JSON string
data = json.loads(json_string)
# 2. Access the 'topics' key
topics_list = data["topics"]
print(topics_list)
# Expected output: ['JSON Structure', 'Accessing Keys', 'Handling Arrays']
Diagram: JSON Parsing Flow
graph TD
A["Start with JSON String"] --> B["Parse JSON String (e.g., json.loads in Python)"];
B --> C["Result: A Native Data Structure (e.g., Python dict)"];
C --> D{"Does the key 'topics' exist?"};
D -- Yes --> E["Access Value Associated with 'topics' Key"];
D -- No --> F["Handle Missing Key Error"];
E --> G["Use the 'topics' data"];
F --> G;
Handling Missing Keys

Photo by Mix and Match Studio on Pexels
It's important to consider what happens if a key you're looking for isn't present in the JSON. Directly accessing a missing key (e.g., data["nonExistentKey"]) will usually raise an error. Good practice involves checking for the key's existence or using methods that provide a default value if the key isn't found.
In Python, you can use the .get() method:
# Accessing with .get()
non_existent_key_value = data.get("nonExistentKey", "Key not found")
print(f"Non-existent key value: {non_existent_key_value}")
# Accessing existing key with .get()
topics_list_safe = data.get("topics", []) # Provide an empty list as default
print(f"Topics (safe access): {topics_list_safe}")
3. Worked Example
Let's say you receive the following JSON data, and you specifically need the list of course "topics" from it.
{
"studentName": "Alice",
"enrollmentDate": "2023-09-01",
"courses": [
{
"title": "Introduction to Programming",
"instructor": "Dr. Smith",
"topics": ["Variables", "Loops", "Functions"]
},
{
"title": "Advanced Data Structures",
"instructor": "Prof. Jones",
"topics": ["Trees", "Graphs", "Hash Tables"]
}
],
"gradeAverage": "A"
}
Here's how you'd extract all the topics from all courses using Python:
import json
student_data_json = """
{
"studentName": "Alice",
"enrollmentDate": "2023-09-01",
"courses": [
{
"title": "Introduction to Programming",
"instructor": "Dr. Smith",
"topics": ["Variables", "Loops", "Functions"]
},
{
"title": "Advanced Data Structures",
"instructor": "Prof. Jones",
"topics": ["Trees", "Graphs", "Hash Tables"]
}
],
"gradeAverage": "A"
}
"""
data = json.loads(student_data_json)
all_course_topics = []
# 'courses' is a list, so we iterate through it
for course in data["courses"]:
# For each course object, access its 'topics' key
# Use .get() for safety, in case a course entry somehow misses 'topics'
topics_for_this_course = course.get("topics", [])
all_course_topics.extend(topics_for_this_course) # Add to our master list
print(f"All topics covered: {all_course_topics}")
# Expected output: All topics covered: ['Variables', 'Loops', 'Functions', 'Trees', 'Graphs', 'Hash Tables']
4. Key Takeaways
- JSON data is structured using objects (key-value pairs) and arrays (ordered lists).
- Always parse a JSON string into your language's native data structure before trying to access its contents.
- You access values in a parsed JSON object using its key, often with bracket notation
data["key"]. - If the value associated with a key is an array, you'll need to iterate through that array to access its individual elements.
- Use safe access methods (like
.get()in Python) to prevent errors if a key might be missing.
Common Mistakes to Avoid

Photo by KATRIN BOLOVTSOVA on Pexels
- Not parsing the JSON first: Trying to treat a JSON string like a dictionary/object directly will lead to errors.
- Case sensitivity: JSON keys are case-sensitive;
"topics"is different from"Topics". - Assuming key presence: Always consider that a key might not exist and handle that case gracefully.
- Incorrectly iterating: If a key's value is an array, remember to loop through it; if it's an object, access its keys.
5. Now Try It
Given the following JSON, extract the courseTitle and its associated topics for the course with courseId: "CS102".
{
"studentId": "S123",
"registeredCourses": [
{
"courseId": "CS101",
"courseTitle": "Intro to Algorithms",
Frequently asked about "topics": [
More from W he;p
Get the full W he;p curriculum
Clone the complete plan to your dashboard for unlimited AI-generated notes, practice quizzes, and a personalised revision schedule.
Save this course free