κ²μμ νλ€λ³΄λ©΄ μΈμ κ° κ²μμ μ’
λ£μμΌμΌ νλ€. μ΄λ΄ λ μ μ₯κΈ°λ₯μ΄ μλ€λ©΄ μ μ μ
μ₯μμ λ§μ΄ λμ²ν κ²μ΄λ€.
μ λν°μμ λ³΄ν΅ μ μ₯ κΈ°λ₯μ ꡬνν λ, PlayerPrefs, JSON νμΌ λ±μ μ¬μ©νλ€.
μ΄λ²μ JSON νμΌλ‘ κ²μ μ μ₯ κΈ°λ₯μ μ΄λ»κ² ꡬνν μ μμμ§ μμ보μ.
μ μ₯ κΈ°λ₯μ ꡬννκΈ° μ μ λ¨Όμ JSONμ λν΄ μμ보μ.
JSONμΌλ‘ μ μ₯νλ€λλ° JSONμ΄ λμ§ λͺ¨λ₯΄λ©΄ λκ° μ΄μνμ§ μμκ°.
JSONμ JavaScript Object Notationμ μ½μλ‘ λ°μ΄ν° μ μ₯κ³Ό κ΅νμ μμνκ² νκΈ° μν΄ λ§λ€μ΄μ§ μμμ΄λ€. κΈ°μ‘΄μ μ°μ΄λ XMLμ λΉν΄ κ΅¬μ‘°κ° λ¨μνκ³ κ°λ²Όμ μμ£Ό μ¬μ©λλ€.
JSONμ κ°μ²΄(Object)λ‘ μ΄λ£¨μ΄μ Έ μμ μλ μκ³ , λ°°μ΄(Array)λ‘ μ΄λ£¨μ΄μ Έ μμ μλ μλ€. μ€λͺ
νκΈ°μ μμ κ°λ¨ν λΉκ΅ν΄λ³΄λ©΄,
κ°μ²΄
{} λ‘ κ°μΈλ©°, ν€(key) - κ°(value) μμΌλ‘ λ°μ΄ν°λ₯Ό μ μ₯νλ€.κΈ°λ³Έμ μΈ κ΅¬μ‘°
{ key : value }
μμ
{
"λμ": "μμΈ",
"μΈκ΅¬": 10000000,
"μ§μ": ["μνꡬ", "μλ±ν¬κ΅¬", "λ§ν¬κ΅¬"]
}
λ°°μ΄
[]λ‘ κ°μΈλ©°, κ°(value)λ€μ λͺ©λ‘μ μ μ₯νλ€.κΈ°λ³Έμ μΈ κ΅¬μ‘°
[value1, value2, value3]
μμ
[
{"μν": "λ
ΈνΈλΆ", "κ°κ²©": 1500000},
{"μν": "μ€λ§νΈν°", "κ°κ²©": 800000},
{"μν": "νλΈλ¦Ώ", "κ°κ²©": 600000}
]
λ€μ μμλ‘ μ’ λ μμΈν μμ보μ.
{
"μ΄λ¦": "νκΈΈλ",
"λμ΄": 30,
"μ£Όμ": {
"λμ": "μμΈ",
"ꡬ": "κ°λ¨κ΅¬"
},
"μ·¨λ―Έ": ["λ
μ", "λ±μ°", "μμ
κ°μ"]
}
μ΄λ¦, λμ΄, μ£Όμ, μ·¨λ―Έμ ν€(key)μ μ΄μ ν΄λΉνλ κ°λ€μ΄ ν¬ν¨λμ΄ μλ€. κ° λ°μ΄ν°λ μΌν,λ‘ κ΅¬λΆλλ€.μ£Όμλ κ°μΌλ‘ λ λ€λ₯Έ κ°μ²΄λ₯Ό κ°μ§λ©°, κ·Έ κ°μ²΄λ λμ, ꡬμ ν€μ μ΄μ ν΄λΉνλ κ°μ΄ μ μ₯λμ΄ μλ€.μ·¨λ―Έμ κ°μΌλ‘λ λ°°μ΄μ΄ ν λΉλμ΄ μλ€.μ£Όμ ν€μ ν λΉλ κ°(κ°μ²΄)
{
"λμ": "μμΈ",
"ꡬ": "κ°λ¨κ΅¬"
}
μ·¨λ―Έ ν€μ ν λΉλ κ°(λ°°μ΄)
["λ
μ", "λ±μ°", "μμ
κ°μ"]
κ°μκΈ° λκ° λ³΅μ‘ν΄ λ³΄μ΄λ μ½λμ ꡬ쑰λ₯Ό λ―μ΄λ³΄λ λκ° ν·κ°λ¦΄ μλ μλ€.
κ·Έλμ JSONμμ μ¬μ© κ°λ₯ν λ°μ΄ν° νμ
μ λν΄ μμ보면μ 볡μ΅ν΄λ³΄μ.
JSON λ΄μμ ννν μ μλ λ°μ΄ν° νμ μ λ€μ 6κ°κ° μλ€.
"ν
μ€νΈ"ex) -1, 0, 1, λ±...λ μ€μex) 3.141592, λ±...{ "ν€": "κ°" }[κ°1, κ°2, ...]true λλ falsenullμ΄λ₯Ό λ³΄κ³ λ€μ μμμ ν¨κ» λ€μ μμΈν μ΄ν΄ν΄λ³΄μ.
{
"name": "νκΈΈλ",
"age": 28,
"height": 175.5,
"isMember": true,
"address": {
"city": "μμΈ",
"district": "κ°λ¨κ΅¬",
"zipcode": null
},
"hobbies": ["λ
μ", "λ±μ°", "μν κ°μ"]
}
"name": "νκΈΈλ", "city": "μμΈ", "district": "κ°λ¨κ΅¬""age": 28, "height": 175.5"address": { ... }{}λ‘ κ°μΈμ¬ μμΌλ©°, ν€-κ° μμΌλ‘ ꡬμ±λλ€. 볡μ‘ν λ°μ΄ν°λ₯Ό ꡬ쑰ννλ λ° μ¬μ©λλ€."hobbies": ["λ
μ", "λ±μ°", "μν κ°μ"][]λ‘ κ°μΈμ¬ μμΌλ©°, κ°λ€μ μμκ° μλ λͺ©λ‘μΌλ‘ ꡬμ±λλ€. λμΌν νμ
μ λ°μ΄ν°λ λ€μν νμ
μ λ°μ΄ν°λ₯Ό ν¬ν¨ν μ μλ€."isMember": truetrue) λλ κ±°μ§(false) κ°μ κ°μ§λ€."zipcode": nullλ°μ΄ν° νμ μ νμ©νλ©΄ μλμ κ°μ΄ 볡μ‘ν ꡬ쑰λ νν κ°λ₯νλ€.
{
"player": {
"name": "κΉμ² μ",
"stats": {
"level": 15,
"experience": 2450.75,
"isPremium": false
},
"inventory": [
{
"item": "κ²",
"quantity": 1,
"durability": 80.5
},
{
"item": "λ°©ν¨",
"quantity": 1,
"durability": 60.0
},
{
"item": "ν¬μ
",
"quantity": 10,
"durability": null
}
],
"achievements": null
}
}
player : κ°μ²΄ νμ
, νλ μ΄μ΄μ λν λͺ¨λ μ 보λ₯Ό ν¬ν¨.name : λ¬Έμμ΄ νμ
, νλ μ΄μ΄μ μ΄λ¦.stats : κ°μ²΄ νμ
, νλ μ΄μ΄μ λ 벨, κ²½νμΉ, ν리미μ νμ μ¬λΆμ λν μ 보λ₯Ό ν¬ν¨.level: μ«μ νμ
, νλ μ΄μ΄μ λ 벨.experience: μ«μ νμ
, νλ μ΄μ΄μ κ²½νμΉ.isPremium: λΆλ¦¬μΈ νμ
, ν리미μ νμ μ¬λΆ.inventory: λ°°μ΄ νμ
, νλ μ΄μ΄μ μΈλ²€ν 리 μμ΄ν
λͺ©λ‘.item(λ¬Έμμ΄), quantity(μ«μ), durability(μ«μ λλ λ) νλλ₯Ό κ°μ§.achievements: λ νμ
, νμ¬ νλ μ΄μ΄κ° λ¬μ±ν μ
μ μ΄ μμμ μλ―Έ.''κ° μλ ν°λ°μ΄ν""λ‘ κ°μΈμΌ νλ€.(X) { 'name': 'νκΈΈλ' }
(O) { "name": "νκΈΈλ" }
,λ‘ κ΅¬λΆνλ©°, λ§μ§λ§ μμ λ€μ μΌνλ₯Ό μ¬μ©νμ§ μλλ€.(X)
{
"name": "νκΈΈλ",
"age": 30,
}
(O)
{
"name": "νκΈΈλ",
"age": 30
}
(X)
{
"name": "νκΈΈλ" // μ¬μ©μ μ΄λ¦
}
λλ
{
"name": "νκΈΈλ" # μ¬μ©μ μ΄λ¦
}
(O)
{
"name": "νκΈΈλ"
}
μ΄λ κ² ν΄μ JSONμ λν΄ μμ보μλ€.
μ°λ€λ³΄λ λΆλμ΄ κΈΈμ΄μ Έμ μ λν°μμ JSONμ νμ©ν΄ μ μ₯ κΈ°λ₯μ λ§λ€μ΄ 보λ κ²μ λ€μ κΈμμ μμ보μ.