ํ์ผ ์ ์ถ๋ ฅ์ json์ผ๋ก ํ ์ ์๋ค๋ ๊ฑธ ๊ฐ๋จํ ์ฃผ์๋ค์
string json = JsonConvert.SerializeObject(FooObject);
File.WriteAllText("FilePath.json", json);
์ ์ฅํ๊ณ
string json = File.ReadAllText("FilePath.json");
FooObject = JsonConvert.DeserializeObject((FooClass))(json);
๋ถ๋ฌ์ด
์!
์๋จ!
์๋ดํด๋ณด๋ ๊ฐ์ฒด๊ฐ ๋ด๊ณ ์๋ ๊ฒ๋ค์ ํ์ ์ ๋ค FooClass๋ก ์ก์ผ๋ ค๊ณ ํด์? ์๋๋ค๊ณ ํจ
var settings = new JsonSerializerSettings
{
TypeNameHandling = TypeNameHandling.Auto
};
๋ฅผ ์์ ๋ถ์ฌ์ฃผ๊ณ settings๋ฅผ ํจ๋ฌ๋ฏธํฐ๋ก ๋ฃ์ด์ฃผ๋ฉด ์ ๋ ๊ฑฐ๋ผ๊ณ ํจ
string json = JsonConvert.SerializeObject(FooObject);
File.WriteAllText("FilePath.json", json, settings);
๋ก ์ธ์ด๋ธํ๊ณ ,
var settings = new JsonSerializerSettings
{
TypeNameHandling = TypeNameHandling.Auto
};
string json = File.ReadAllText("FilePath.json");
FooObject = JsonConvert.DeserializeObject((FooClass))(json, settings);
๋ก ๋ก๋ํจ
์!
์ธ์ด๋ธ๋ก๋๋ฅผ ํ ๋๋ง๋ค ์ธ๋ฒคํ ๋ฆฌ ์์ดํ ์ด ๋ณต์ฌ๊ฐ ๋๋ค๊ณ ?
๊ทธ๋์ ๋ค์ ์๋ดํด ๋ณด๋
๋ก๋ํ ๋๋ง๋ค ๊ธฐ์กด ๋ฐ์ดํฐ๋ฅผ ์ด๊ธฐํํ๋ ๋ฉ์๋๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ๋ ๊ฑฐ๋ผ๊ณ ํจ
๊ทธ๋์ FooObject=null๋ก ๋ง๋๋ ๋ฉ์๋๋ฅผ ์ฌ์ด์ ์ง์ด๋ฃ์
์!
ใ ใ ๋ณํ๊ฒ ์์์
์ด์ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก, ์ธ์ด๋ธ/๋ก๋๋ฅผ ํ ๋๋ง๋ค ์ธ๋ฒคํ ๋ฆฌ์ ์์ดํ ๋ค์ด ๊ณ์ ์๊ฐ๋ณต์ ๋ฅผ ํจ
๊ทธ๋์ ๋ค์ ์๋ดํด ๋ณด๋
FooClass๊ฐ ์ฑ๊ธํค์ผ ๊ฐ๋ฅ์ฑ ์ด์ฉ๊ตฌ ์ ์ฉ๊ตฌ ์์ฑ์๋ฅผ private์ผ๋ก ๋ฐ๊พธ๊ณ ์ด์ฉ๊ตฌ ์ ์ฉ๊ตฌ~
ํ๋ฉด์ ์ฝ๋ ๊ธธ์ด๊ฐ 2๋ฐฐ๊ฐ ๋๋ ์ด๋ค ์ฝ๋๋ฅผ ๋ฑ๋๋ฐ ์ด๊ฑด ์์ ์ปดํ์ผ ์๋ฌ์
'๋๋ฐ๋ก ๋ค์ ์ฐ์ญ์์ค ์ด ์ฝ๋๋ ์ปดํ์ผ์ด ๋์ง ์์ต๋๋ค'
'์ฃ์กํฉ๋๋ค. ์ ๊ฐ ์๋ชป ์ดํดํ ๊ฒ ๊ฐ์ต๋๋ค. ~~~'
ํ๋ฉด์ ์ด์ ์ฝ๋๋ฅผ ๋ฑ์
'์ด๊ฑด ์ค๋ฅ๊ฐ ํด๊ฒฐ๋์ง ์์ต๋๋ค'
'์ฃ์กํฉ๋๋ค. ์ ๊ฐ ์ดํดํ ๋ฐ์ ๋ฐ๋ฅด๋ฉด, ~~~'
(๋ฌดํ๋ฃจํ)
ํ๋คํ๋ค ์ง์ณ์ F11์ 30๋ถ์ ๋ ๋๋ฌ๋ณธ ๊ฒฐ๊ณผ
์ผ๋จ ๋ด ์ฝ๋๊ฐ ์คํ๊ฒํฐ์ฌ์ ๊ทธ๋ฐ ๊ฑด ์๋๊ณ
Json ์ง๋ ฌ/์ญ์ง๋ ฌ ๋จ๊ณ์์ ๋ด๊ฐ ๋ชจ๋ฅด๋ ๋ญ๊ฐ๊ฐ ์ผ์ด๋๋ ๊ฑฐ์
๊ทธ๋์ stackOverflow ์ ๊ป ๋ฌผ์ด๋ด
์ง๋ต์ 5๊ฐ์ ๋ ๋ค์ง๋๊น ์ํ๋๊ฒ ๋์ด
๊ธฐ๋ณธ๊ฐ์
์ง๋ ฌํํ ๋ ๋ฎ์ด์ฐ๋๊ฒ ์๋๋ผ ๊ธฐ์กด ๊ฐ์ฒด๋ฅผ ์ฌํ์ฉํ๋๊ฑฐ๋ผ์,
settings์
ObjectCreationHandling = ObjectCreationHandling.Replace
๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ๊ธฐ์กด ๊ฐ์ฒด ์์ ๋ฆฌ์คํธ๋ค์ Addํ๋ ๊ฒ ์๋๋ผ
ํญ์ ์ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด์ ๋์ ํ ์ ์์ ๊ฑฐ๋ผ๊ณ ํจ
ํด๊ฒฐ ๋จ
ChatGPT๊ฐ ๋ถ์์ ํ๊ฑด์ง ๋ด๊ฐ ์ง๋ฌธ์ ๊ฐ๋ก๊ฐ์ด ํ๊ฑด์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง
์ฌ๋ ์๋ฐ ๋ค๋ ค๊ณ ๋ง๋ ChatGPT๊ฐ ์ปดํ์ผ๋ ์๋๋ ์ค๋ต์ผ๋ก ์ฌ๋์ ๊ดด๋กญํ๋ค๋ฉด
์ผ๋จ ๋ด์๋ชป์ ์๋๋ผ๊ณ ์๊ฐํ๊ณ ๋ค์ ๊ณต๋ถ๋ฅผ ํ๊ธฐ๋ก ํจ
๋
chatGPTํํ ์ง๋ฌธํ ๋, ํ๋ฒ ๊ผฌ์ธ๊ฑธ ๊ณ์ ์ง๋ฌธํ๋ฉด ์ข ์ข ๋ต๋ณ์ ์ค์ผ์ด ์๊ธฐ๋๊ฑฐ๊ฐ์. ๋๋ ๊ทธ๋ด ๋ ์์ ๊ธฐ์กด ์ง๋ฌธ ์ ๋ฆฌํด์ ๋ค์ ์ ๊ธ์์ ๋ฌผ์ด๋ด
์๋๋ ํด๋ดค๋๋ฐ 1. ์ง๋ฌธ์ ๋ฐ๊ฟ๊ฐ๋ฉด์ ์๋ฐฉ ํ์ ์ฌ๋ฌ๋ฒ ํด๋ด๋ ๋ฑํ ์ํ๋ ๋ต์ด ์๋ 2. ๋ ๋๋ฌด ๋ง์ด ๋ง๋ค๊ณ ํ์๊ฐ ๋ธ๋ฝ ๋จน์ 3. ์ธ๋ฉด์ ์คํ์ค๋ฒํ๋ก์ฐ ๊ฐ ใ ใ
๋๊ฐ ์๋ชปํ๊ฑฐ๋ AI ๋ง์ด ์ง์ค์ด๋ผ๊ณ ์๊ฐํ๊ฑฐ์ ํ์ธ๋ ์ฑ๋ด์ ๊ทธ๋ฅ ๊ฒ์๊ฒฐ๊ณผ ์์ฝ์ด๋ผ๊ณ ์๊ฐํด์ผ์ง ๊ทธ๊ฒ ์ ๋ต์ด๋ผ๊ณ ์ฌ๊ธฐ๋ฉด ์๋จ ๋๊ฐ ๋ต๋ณ์ ์ด๋์ ๋ ์๋ ์ํ, ์์ฝ๋ณธ์ ๊ฒ์ฆํ ์ ์๋ ๋ ๋ฒจ์์ ์ง๋ฌธ์ ํด์ผ ํจ
๊ทธ ์ค๋ ฅ์ด ์์ง ์๋จ ใ ใ
ํ์ผ ์ ์ถ๋ ฅ, save, load ๋ฐ์ดํฐ ์์ผ๋ฉด JSON, XML ๊ฐ์๊ฑธ๋ก ํด๋ ๋์ง๋ง ๋ฐ์ดํฐ ํฌ๋ฉด ์ฑ์ด ๋ฉ์ถ๊ฑฐ๋ ํ๊ธฐ ๋๋ฌธ์ ์คํธ๋ฆผ์ผ๋ก ์ฝ์ด์ผํจ. ์ข์ ์ปดํจํฐ๋ ssd๋ hdd ์ฝ๊ฑฐ๋ ์ฐ๋ ์๋๋ณด๋ค ํฌ๋ฉด ์ผ์ด๋ ์ ์๋ ํ์์ด๊ธฐ ๋๋ฌธ์ ์คํธ๋ฆผ์ผ๋ก ํด๊ฒฐํ๊ณ ๋๋ฌด ํฐ ๋ฐ์ดํฐ๋ sqlite ์๋๋ฉด ์ง์ ํฌ๋งท๋ง๋ค์ด์ ํด๊ฒฐํ๋๊ฑฐ ์ถ์ฒ.