Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

In Python, decoding JSON objects produces dictionaries (dict), while decoding JSON arrays produces lists (list). JSON is text—not JavaScript code—and its object and array structures describe different shapes of data: named fields and ordered items.

What JSON objects and arrays represent

JSON is a text data-interchange format. It has two compound structures: an object, made of name/value pairs, and an array, an ordered sequence of values. JSON also supports strings, numbers, booleans, and null; objects and arrays can contain one another. The format’s terms describe the data shape, not a required programming-language type. See JSON.org’s introduction to JSON.

JSON structure Typical use Python default after decoding
Object, such as {"name":"Ari"} Values addressed by field name dict
Array, such as ["Python","JSON"] Ordered items addressed by position list

Choose an object when a value belongs to a named field, such as a person’s name. Choose an array when the values form a sequence, such as a list of skills where order or position matters. Neither structure is universally better; use the one that matches the data.

Why JSON is not JavaScript syntax

The name stands for JavaScript Object Notation, but JSON is a language-independent text format. It resembles JavaScript object literals, yet a JavaScript expression that looks plausible may not be valid JSON. JSON strings and property names must use double quotes; comments and trailing commas are not allowed. MDN describes JSON as “a syntax for serializing objects, arrays, numbers, strings, booleans, and null.” See MDN’s JSON reference.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Elebase USB to USB C Adapter for iPhone 18 Pro Max,USBC Car Charger Adapter
  • Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
  • Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
  • Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
  • Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
  • 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.

This is valid JSON:

{"name": "Ari", "skills": ["Python", "JSON"]}

These JavaScript-like variations are not valid JSON:

{name: 'Ari'}       // unquoted name, single-quoted string, and comment
{"name": "Ari",}   // trailing comma

Decode JSON into Python values

Python’s standard json module converts JSON text to built-in Python values. Use json.loads when the JSON is already in a string, or json.load when reading from a file-like object.

Rank #2
Anker USB-C Hub, 5-in-1 USB Hub for Laptops, 4K HDMI Multiport Adapter
  • 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
  • 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
  • Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
  • 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
  • What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
import json

text = '{"name": "Ari", "skills": ["Python", "JSON"]}'
data = json.loads(text)

print(type(data))            # <class 'dict'>
print(type(data["skills"]))  # <class 'list'>

The outer value here is an object, so data is a dictionary. Its skills value is an array, so that nested value is a list.

The top-level value can be something other than an object

A JSON document does not have to start with an object. It can have an array or a single value at its root. For example, decoding ["red", "blue"] returns a Python list, not a dictionary; decoding true returns True. A top-level list is not, by itself, evidence that parsing failed. Check the document’s outermost JSON value and inspect the resulting Python type.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
Anker USB C Hub, 7in1 Multi-Port USB Adapter, 4K@60Hz USBC to HDMI Splitter
  • Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
  • Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
  • Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
  • Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
  • What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.

Encode Python values as JSON

Use json.dumps to create a JSON string, or json.dump to write JSON to a file-like object. The encoder maps Python dictionaries to JSON objects and lists or tuples to JSON arrays.

back_to_text = json.dumps(data)
print(back_to_text)
# {"name": "Ari", "skills": ["Python", "JSON"]}

The result of json.dumps is a Python str, not bytes. That distinction matters if the destination expects binary data rather than text.

Rank #4
Sale
UGREEN USB to USB C Adapter Combo 4-Pack, 10Gbps USB C Converter Space Gray
  • Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
  • Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
  • Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
  • Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
  • Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

What changes across the JSON boundary

JSON defines a limited set of values. It does not have built-in representations for every value a programming language can hold, so converting data to JSON is not a universal way to preserve native types exactly.

JSON value Python default from json.loads JavaScript parsed value
Object dict ordinary object
Array list array
true / false True / False true / false
null None null
Number int or float, depending on its form JavaScript number

These are common mappings, not a promise that every runtime preserves a number’s original spelling, arbitrary precision, or every language-specific type. Python’s conversion behavior is documented in the Python 3.12 json documentation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
Anker USB C Hub, 5-in-1 USBC to HDMI Splitter with 4K Display
  • 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
  • Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
  • Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
  • HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
  • What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.

Unsupported values need an explicit representation

Values such as functions, dates, sets, maps, and JavaScript’s undefined have no direct JSON value equivalent. What happens depends on the language and serializer. In JavaScript, JSON.stringify omits unsupported values such as undefined, functions, and symbols in objects, but converts them to null in arrays; it converts NaN and infinities to null. It throws for circular references and BigInt unless custom handling is provided. See MDN’s JSON.stringify() reference.

Python’s encoder supports its documented native types and can be extended with a custom encoder; decoding can also be customized with hooks. If a value needs a custom representation, define that representation as part of the data contract so another program can interpret it consistently. A JSON round trip should not be assumed to act as a general deep copy or preserve every runtime type.

Python’s non-standard numeric constants

Python’s json module accepts NaN, Infinity, and -Infinity when decoding as an extension, and its encoder permits them by default. These constants are outside the JSON specification. Set allow_nan=False when encoding if you want the encoder to reject them rather than emit non-standard JSON.

Common problems and what to check

  • “I expected a dictionary but got a list.” The JSON root may be an array. Inspect the source text’s outermost structure and the decoded value’s type.
  • “The parser rejects my file.” Check for single quotes, unquoted property names, comments, or trailing commas; none are valid JSON.
  • “This Python value is not JSON serializable.” Identify the value that lacks a direct JSON representation and convert it to a documented JSON-compatible shape, or use a custom encoder for a clearly defined format.

Handle untrusted JSON with care

Parsing JSON from an untrusted source can consume substantial CPU time and memory if the input is malicious or excessively large. Python’s official documentation recommends limiting the size of data you parse. Apply an appropriate input-size limit for your application rather than accepting arbitrarily large text.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.