JavaScript Objects and JSON Explained
SkillVeris Team
Engineering Team

A JavaScript object stores data as key-value pairs and is the language's core structure for grouping related information.
In this guide, you'll learn:
- JSON (JavaScript Object Notation) is a text format for storing and exchanging data, inspired by object syntax but not identical to it.
- JSON.stringify converts an object into a JSON string; JSON.parse converts a JSON string back into an object.
- JSON keys must be double-quoted strings, and JSON cannot hold functions, undefined, or comments.
- Objects are live data structures in memory; JSON is inert text for transmission and storage.
1Objects vs JSON: What's the Difference?
A JavaScript object is a live in-memory structure that stores data as key-value pairs and can hold any value, including functions. JSON is a plain-text format for representing that kind of data so it can be saved to a file or sent over a network. They look similar, but an object is code you run while JSON is text you exchange.
The confusion is understandable: JSON's syntax was modeled on JavaScript object literals. But the two serve different jobs. You build and manipulate objects in your program, then convert them to JSON when you need to transmit or store them, and parse JSON back into objects when you receive it.
2JavaScript Objects Basics
You create an object with curly braces containing key-value pairs. Values can be any type: strings, numbers, booleans, arrays, functions, or other objects. This flexibility makes objects the backbone of nearly every JavaScript program, from configuration to application state.
- const user = {
- name: 'Ada',
- age: 30,
- isAdmin: true,
- greet() { return 'hi' } // objects can hold functions
- }
3Accessing and Modifying Properties
You read and set object properties with dot notation or bracket notation. Dot notation is cleaner for known, fixed keys. Bracket notation is required when the key is stored in a variable or contains special characters. Assigning to a new key adds it, and delete removes one.
- user.name // dot notation: 'Ada'
- user['age'] // bracket notation: 30
- const key = 'name'; user[key] // dynamic key
- user.email = '[email protected]' // add a property
- delete user.isAdmin // remove a property
💡Pro Tip
Use bracket notation whenever the property name lives in a variable. Dot notation only works with literal, fixed key names known when you write the code.
4Iterating Over Objects
Unlike arrays, objects are not looped with map or forEach directly. Instead, use Object.keys, Object.values, or Object.entries to get arrays you can iterate. Object.entries is especially handy because it gives you both the key and value in each iteration.
- Object.keys(user) // ['name', 'age']
- Object.values(user) // ['Ada', 30]
- Object.entries(user) // [['name','Ada'], ['age',30]]
- for (const [key, val] of Object.entries(user)) { ... }
5Converting Between Objects and JSON
Two built-in methods handle conversion. JSON.stringify serializes an object into a JSON string, ready to store or send. JSON.parse deserializes a JSON string back into a usable object. This round trip is how JavaScript talks to APIs, files, and browser storage.
The Round Trip
stringify accepts optional arguments to pretty-print output, useful for readable files. parse throws if the text is not valid JSON, so wrap it in try/catch when the input is untrusted.
const json = JSON.stringify(user) // object to string
const obj = JSON.parse(json) // string back to object
JSON.stringify(user, null, 2) // pretty-printed
// parse throws SyntaxError on malformed JSON6JSON's Strict Rules
JSON is stricter than JavaScript object syntax. Keys must be double-quoted strings, strings use double quotes only, and trailing commas are forbidden. JSON also cannot represent functions, undefined, comments, or dates natively. Knowing these limits explains why JSON.stringify silently drops functions and turns dates into strings.
- Keys must be in double quotes: {"name": "Ada"}
- Strings use double quotes, never single.
- No trailing commas allowed.
- No functions, undefined, comments, or NaN.
- Dates become ISO strings and must be re-parsed manually.
⚠️Watch Out
JSON.stringify silently omits properties whose values are functions or undefined. If data seems to vanish during serialization, check for those value types.
7Common Mistakes to Avoid
Most object and JSON errors come from blurring the line between the two.
- Treating a JSON string as an object; you must JSON.parse it first.
- Calling JSON.parse on data that is already an object, causing an error.
- Forgetting that JSON keys and strings need double quotes.
- Expecting functions or dates to survive a stringify/parse round trip.
- Not wrapping JSON.parse in try/catch when handling untrusted input.
8Key Takeaways
Objects and JSON work together but play distinct roles.
- Objects are live key-value structures in memory.
- JSON is inert text for storing and exchanging data.
- JSON.stringify turns objects into JSON strings.
- JSON.parse turns JSON strings back into objects.
- JSON is strict: double-quoted keys, no functions or comments.
9Frequently Asked Questions
Q: What is the difference between a JavaScript object and JSON? A: An object is a live data structure in your program's memory that can hold any value, including functions. JSON is a text format for representing data so it can be stored or transmitted. You convert between them with JSON.stringify and JSON.parse.
Q: How do I convert an object to JSON and back? A: Use JSON.stringify(obj) to turn an object into a JSON string, and JSON.parse(str) to turn a JSON string back into an object. This round trip is how you save data or send it to an API.
Q: Why did my function or date disappear in JSON? A: JSON cannot represent functions or undefined, so JSON.stringify drops them. Dates are converted to ISO strings, so you must re-create Date objects after parsing.
Q: Do JSON keys really need double quotes? A: Yes. Unlike JavaScript object literals, JSON requires every key to be a double-quoted string, uses double quotes for string values, and forbids trailing commas. That strictness is what makes JSON portable across languages.
Related Reading
Get The Print Version
Download a PDF of this article for offline reading.
About the Publisher
SkillVeris Team
Engineering Team
Our engineering writers turn abstract code concepts into hands-on, project-driven learning experiences.
View all postsRelated Posts
Never miss an update
Get the latest tutorials and guides delivered to your inbox.
No spam. Unsubscribe anytime.