JSON: ano ito, istraktura ng data at prinsipyo ng paggana

May-akda: IT Sectr Nai-publish: 2026-03-08 Oras ng pagbabasa: 8 min

JSON (JavaScript Object Notation) — ay isang magaan na text format para sa pagpapalitan ng data, batay sa syntax ng mga object ng JavaScript. Ito ay ginagamit kahit saan: mula sa REST API at mga configuration file hanggang sa pag-imbak ng data sa mga database at mobile application. Ayon sa opisyal na website ng JSON, ang format ay hindi nakadepende sa programming language at sinusuportahan ng halos lahat ng modernong platform. JSON ay naging de facto standard para sa paghahatid ng data sa pagitan ng client at server.

Mga pangunahing punto

  • JSON — magaan na text format para sa nakaayos na data batay sa JavaScript syntax
  • Anim na uri ng data — string, numero, boolean, null, array at object para sa anumang istraktura
  • Pangkalahatan — sinusuportahan ng lahat ng programming language at platform
  • REST API — pangunahing format para sa pagpapalitan ng data sa web at mobile app
  • Kakayahang mabasa — simpleng syntax madaling basahin at i-edit nang walang tool

Ano ang JSON?

JSON — ay isang text format para sa representasyon ng nakaayos na data, batay sa syntax ng JavaScript. Sa kabila ng pinagmulan nito mula sa JavaScript, ang format ay ganap na malaya sa wika — umiiral ang mga parser at serializer para sa lahat ng sikat na programming language.

Ang kasaysayan ng JSON ay nagsimula noong unang bahagi ng 2000s, nang ihiwalay ni Douglas Crockford ang isang subset ng JavaScript syntax para sa pagpapalitan ng data. Noong 2013, na-standardize ang format bilang ECMA-404, at kalaunan bilang ISO/IEC 21778:2017. Ang pangalan ay nangangahulugang JavaScript Object Notation.

Ang pangunahing bentahe ng JSON ay ang minimalistang syntax. Para sa paglalarawan ng data, anim na uri lamang ang ginagamit: string, numero, boolean, null, array at object. Ito ay sapat para sa representasyon ng anumang mga structure ng data na ginagamit sa mga application.

Saan ginagamit ang JSON

  • REST API — pangunahing format para sa mga kahilingan at tugon sa pagitan ng server at client
  • Mga configuration file — package.json, tsconfig.json, .prettierrc
  • Mga database — MongoDB, PostgreSQL (JSONB), Firebase Firestore
  • Mga mobile application — pag-iimbak ng mga setting, pag-cache ng data
  • Mga teknolohiya sa web — WebSocket, Server-Sent Events, localStorage

Syntax at mga uri ng data ng JSON

Ang syntax ng JSON ay napakasimple: ang data ay kinakatawan bilang mga pares ng key-value, kung saan ang key ay isang string sa dobleng panipi, at ang value ay isa sa anim na pangunahing uri. Ang mga object ay nakapaloob sa curly braces, ang mga array ay nasa square brackets. Ang mga string ay obligadong gumamit ng dobleng panipi, ang mga solong panipi ay hindi pinapayagan.

Ang mga numero sa JSON ay maaaring integer o floating-point, positibo o negatibo, may exponential notation. Ang mga boolean value ay kinakatawan ng true at false, at ang kawalan ng value ay null. Ang mga array ay naglalaman ng nakaayos na set ng mga value ng anumang uri, kabilang ang mga nested array at object.

json
{
  "name": "JSON",
  "type": "text",
  "version": 2024,
  "flexible": true,
  "extensions": null,
  "languages": [
    "JavaScript",
    "Python",
    "Java"
  ],
  "nested": {
    "info": "suporta para sa nesting"
  }
}
Uri Halimbawa Paglalarawan
String “teksto” Sa dobleng panipi, may mga escape sequence
Numero 42 Integer, floating-point, exponential
Boolean true true o false — walang panipi
null null Kawalan ng value
Object {} Hindi nakaayos na set ng mga pares key-value
Array [] Nakaayos na listahan ng mga value

JSON sa REST API

JSON ay ang pangunahing format ng palitan ng data para sa REST API sa mobile at web development. Ang server ay nagpapadala ng JSON sa body ng tugon, ang client — sa body ng kahilingan. Ang standard na header ng Content-Type para sa JSON ay application/json.

Ang mga modernong REST API ay gumagamit ng JSON para sa pagpapadala ng lahat ng uri ng data: mula sa mga simpleng listahan hanggang sa kumplikadong nested structure na may mga relasyon sa pagitan ng entity. Ang client library (hal. Axios sa JavaScript o Retrofit sa Android) ay awtomatikong nagse-serialize at nagde-deserialize ng JSON, na nagliligtas sa developer mula sa manual na pag-parse.

Ang isang mahalagang bentahe ng JSON sa REST API ay ang kakayahang magpadala ng bahagyang data (partial response) sa pamamagitan ng mga parameter ng kahilingan, pati na rin ang suporta para sa mga nested na resource nang walang karagdagang kahilingan sa server.

Pag-parse ng JSON sa mga mobile platform

Pag-parse ng JSON sa mga mobile platform ay isinasagawa gamit ang mga built-in na tool. Ang Android ay gumagamit ng mga library na Gson mula sa Google o Moshi mula sa Square, ang iOS ay gumagamit ng Codable protocol na may JSONDecoder. Ang bawat platform ay nagbibigay ng mga maginhawang tool para sa conversion ng JSON sa native na object at vice versa.

JSON sa Android (Kotlin)

Sa Android, ang approach na may Gson o Moshi ay popular. Sapat na mag-define ng data class na may @SerializedName annotations at tawagan ang fromJson para sa deserialization. Awtomatikong itinutugma ng library ang mga pangalan ng field sa JSON sa mga field ng class.

kotlin
import com.google.gson.Gson
import com.google.gson.annotations.SerializedName

data class User(
    @SerializedName("id") val id: Int,
    @SerializedName("name") val name: String,
    @SerializedName("email") val email: String
)

fun parseJson(jsonString: String): User {
    val gson = Gson()
    return gson.fromJson(jsonString, User::class.java)
}

JSON sa iOS (Swift)

Sa iOS, ginagamit ang built-in na Codable protocol na may JSONDecoder. Ang structure ng data ay idineklara bilang struct na may Codable protocol, pagkatapos ang JSON ay na-parse sa isang linya. Ginagawa ng JSONEncoder ang reverse serialization — kino-convert ang object sa JSON para ipadala sa server.

swift
import Foundation

struct User: Codable {
    let id: Int
    let name: String
    let email: String
}

func parseJSON(from data: Data) throws -> User {
    let decoder = JSONDecoder()
    return try decoder.decode(User.self, from: data)
}

JSON vs XML: paghahambing ng format

JSON at XML — dalawang pangunahing format para sa pagpapadala ng nakaayos na data. Ang JSON ay nananalo sa pagiging simple at performance, ang XML sa kahigpitan at pagpapatunay. Ang pagpili sa pagitan ng mga ito ay depende sa mga kinakailangan ng proyekto: para sa REST API mas madalas pinipili ang JSON, para sa kumplikadong dokumento na may schema — XML.

Ang XML ay nangangailangan ng pagsasara ng tag para sa bawat elemento, na nagpapalaki sa laki ng data ng 2-3 beses kumpara sa JSON. Kasabay nito, sinusuportahan ng XML ang mga namespace, XSD schema, attribute, at XSLT transformation, na ginagawang mas malakas ito para sa mga gawain ng daloy ng dokumento at pagsasama ng corporate system.

Katangian JSON XML
Syntax Minimalista, key-value Batay sa tag, pambukas at pangsarang tag
Laki ng data Compact 2-3 beses na mas malaki kaysa JSON
Uri ng data Anim na pangunahing uri Teksto lamang, uri sa pamamagitan ng schema
Pagpapatunay Walang built-in, sa pamamagitan ng JSON Schema XSD — mahigpit at mature
Namespace Wala Buong suporta para sa namespace
Bilis ng pag-parse Mataas Mababa dahil sa pagiging kumplikado

Mga halimbawa ng pagtatrabaho sa JSON

Mga halimbawa ay nagpapakita ng mga tipikal na operasyon sa JSON sa mobile development: pag-parse ng mga tugon ng API, paglikha ng JSON para sa pagpapadala, at pagproseso ng mga nested structure. Ang pag-unawa sa mga pattern na ito ay kinakailangan para sa bawat developer ng mobile application.

Serialization ng object sa JSON

Sa JavaScript, ang JSON.stringify ay nagko-convert ng object sa JSON string. Ang pangalawang argument ay maaaring isang array ng mga key para sa selective serialization o isang replacement function. Ang ikatlong argument ay nagtatakda ng indentation para sa pag-format.

typescript
interface Order {
  id: string;
  items: OrderItem[];
  total: number;
  createdAt: string;
}

const order: Order = {
  id: 'ord_001',
  items: [{ product: 'phone', quantity: 2 }],
  total: 1599.98,
  createdAt: '2026-07-03T10:00:00Z'
};

const jsonString = JSON.stringify(order, null, 2);

Pag-parse ng nested JSON

Sa Kotlin na may Moshi library, ang mga nested JSON object ay pinoproseso sa pamamagitan ng nested data classes. Ang @Json annotation ay nagpapahiwatig ng pangalan ng field sa JSON kung ito ay naiiba sa pangalan ng property ng class. Ang mga array ay kinakatawan bilang List na may uri ng elemento.

kotlin
import com.squareup.moshi.Moshi
import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory

data class ApiResponse(
    val status: String,
    val data: List<Product>,
    val pagination: Pagination
)

data class Product(
    val id: Int,
    val title: String,
    val price: Double
)

data class Pagination(
    val page: Int,
    val total: Int
)

val moshi = Moshi.Builder()
    .add(KotlinJsonAdapterFactory())
    .build()

JSON Schema: pagpapatunay ng istraktura

JSON Schema — ay isang wika para sa paglalarawan ng istraktura ng isang JSON document, kahalintulad ng XSD para sa XML. Gamit ang JSON Schema, maaaring itakda ang mga mandatoryong field, uri ng data, saklaw ng halaga, pattern ng string, at nested na istraktura. Ang pagpapatunay ayon sa schema ay nakakatuklas ng mga error sa data bago ang pagproseso sa application.

Ang JSON Schema ay malawakang ginagamit sa OpenAPI (Swagger) para sa pagdodokumento ng REST API, sa mga form ng pagpapatunay ng input, at sa pagsubok. Ang file ng schema ay mismong isang JSON document, na nagpapahintulot sa paggamit ng standard na JSON parser para sa pagbasa nito. Mayroong mga online validator at library para sa lahat ng sikat na programming language.

Sa mobile development, ang JSON Schema ay ginagamit para sa pagpapatunay ng mga tugon ng server sa yugto ng pagsubok at para sa pagsusuri ng mga configuration file. Ang mga library tulad ng network-validator sa Android at json-schema-validator ay nagpapahintulot sa pag-embed ng pagpapatunay nang direkta sa proseso ng development, na pumipigil sa mga error sa maagang yugto.

Mga madalas itanong

Anong mga uri ng data ang sinusuportahan ng JSON?

JSON ay sumusuporta sa anim na uri: string (sa dobleng panipi), numero (integer at floating-point), boolean (true/false), null, object (mga pares key-value sa {}) at array (listahan ng mga value sa []). Ito ay sapat para sa anumang istraktura ng data sa mga application.

Maaari bang gumamit ng mga komento sa JSON?

Hindi, ang standard ng JSON ay hindi sumusuporta sa mga komento. Kung kailangan mo ng mga komento, gamitin ang JSON5 (extended JSON) o magdagdag ng field na may paglalarawan, halimbawa “_comment”: “paliwanag”. Ang ilang tool, tulad ng VS Code, ay sumusuporta sa mga komento sa configuration JSON file, ngunit ito ay isang hindi-standard na extension.

Paano naiiba ang JSON sa JSONB sa PostgreSQL?

JSONB — ay isang binary storage format para sa JSON sa PostgreSQL. Hindi tulad ng text JSON, ang JSONB ay mas mabilis na pinoproseso, sumusuporta sa pag-index (GIN indexes) at ginagarantiyahan ang pagiging natatangi ng mga key. Kasabay nito, ang JSONB ay kumukuha ng mas maraming espasyo sa disk dahil sa idinagdag na metadata.

Paano suriin ang validity ng JSON?

Gamitin ang JSONLint (jsonlint.com) para sa mabilis na pagsusuri, built-in na JSON.parse() sa JavaScript na may try-catch, o IDE plugins. Ang pagpapatunay ay kinabibilangan ng pagsusuri sa kawastuhan ng mga panipi, pagsasara ng mga bracket, at pagsunod sa mga uri. Para sa kumplikadong schema, gamitin ang JSON Schema Validator.

Ano ang maximum na laki ng JSON file?

Walang limitasyon sa JSON specification. Sa praktika, ang laki ay limitado ng memorya ng device at kakayahan ng parser. Para sa mga mobile application, inirerekomenda na huwag lumampas ng 1-2 MB bawat tugon, at para sa malaking data ay gumamit ng pagination o streaming transmission.

Buod

  • JSON — minimalistang text format na may anim na uri ng data para sa pagpapalitan ng nakaayos na impormasyon
  • Independyente sa wika — JSON parser ay umiiral para sa lahat ng sikat na programming language
  • REST API ay gumagamit ng JSON bilang standard na format para sa mga kahilingan at tugon sa mobile app
  • Pag-parse ay isinasagawa gamit ang built-in na tool: Gson/Moshi sa Android, Codable sa iOS
  • Ang JSON ay mas compact kaysa XML ng 2-3 beses, ngunit natatalo sa Protobuf sa performance
  • Kakayahang mabasa — syntax ay madaling basahin at i-debug nang walang espesyal na tool
  • JSON Schema — karagdagang tool para sa pagpapatunay ng istraktura at uri ng data

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din