산대특/게임 UIUX 프로그래밍
Json 역직렬화 -> 직렬화 -> 데이터 저장 -> 경로확인 (배열)
꽂무남
2024. 2. 15. 22:38
using Newtonsoft.Json;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using Unity.VisualScripting;
using UnityEngine;
using System.IO;
public class TangtangMain : MonoBehaviour
{
void Start()
{
TextAsset asset = Resources.Load<TextAsset>("tangtang_data");
//Debug.Log(asset.text);
string json = asset.text;
TangtangData[] datas = JsonConvert.DeserializeObject<TangtangData[]>(json);
foreach (TangtangData data in datas)
{
Debug.LogFormat("{0} {1} {2}", data.id, data.name, data.damage);
}
TangtangInfo[] infoArray = new TangtangInfo[datas.Length];
for (int i = 0; i < datas.Length; i++)
{
TangtangData data = datas[i];
TangtangInfo info = new TangtangInfo(data.damage);
infoArray[i] = info;
}
// 직렬화 시작 (객체 배열 -> 문자열 배열)
string[] serializedJsonArray = new string[infoArray.Length];
for (int i = 0; i < infoArray.Length; i++)
{
serializedJsonArray[i] = JsonConvert.SerializeObject(infoArray[i]);
}
// 파일로 저장
// Application.persistentDataPath: 플랫폼 OS에 따라 경로를 자동으로 설정
string path = Application.persistentDataPath + "/tangtang_info.json";
Debug.Log(path);
File.WriteAllLines(path, serializedJsonArray);
}
}
using System;
public class TangtangData
{
public int id;
public string name;
public string damage;
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TangtangInfo
{
public string damage;
public TangtangInfo(string damage)
{
this.damage = damage;
}
}