様々なデータ型のJSONフォーマット保存
List<List>型で保存
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.IO;
namespace LoadSaveSample
{
class Program
{
static void Main(string[] args)
{
Player hero = new Player();
hero.Name = "さいたま";
hero.Hp = 1000;
Player hero1 = new Player();
hero1.Name = "ボス";
hero1.Hp = 100;
List<Player> firstPlayers = new List<Player>();
firstPlayers.Add(hero);
List<Player> secondPlayers = new List<Player>();
secondPlayers.Add(hero);
secondPlayers.Add(hero1);
List<List<Player>> players = new List<List<Player>>();
players.Add(firstPlayers);
players.Add(secondPlayers);
// ユーザー定義型 -> JSON オブジェクト -> 文字列
string jsonSave = JToken.FromObject(players).ToString();
// すべてのデータをテキストファイルに保存
File.WriteAllText("player.json", jsonSave);
// すべてのデータを読み込んでjsonLoad変数に代入
string jsonLoad = File.ReadAllText("player.json");
//// プログラムの終了時にコンソールが閉じないようにする
Console.ReadKey();
}
}
class Player
{
public string Name;
public int Hp;
}
}
Classで保存1(Class内にさらにClass)
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.IO;
namespace LoadSaveSample
{
class Program
{
static void Main(string[] args)
{
Setting setting = new Setting();
Display lowResolv = new Display { Resolution = "低解像度", Size = "4096*2048" };
setting.display = lowResolv;
Sound highSound = new Sound { MainVolume = 55, EffectVolume = 54 };
setting.sound = highSound;
// ユーザー定義型 -> JSON オブジェクト -> 文字列
string jsonSave = JToken.FromObject(setting).ToString();
// すべてのデータをテキストファイルに保存
File.WriteAllText("setting.json", jsonSave);
// すべてのデータを読み込んでjsonLoad変数に代入
string jsonLoad = File.ReadAllText("setting.json");
// JSONフォーマットのデータをPlayer型でデシリアライズ。copyHeroに代入。
Setting newSetting = JsonConvert.DeserializeObject<Setting>(jsonLoad);
//// プログラムの終了時にコンソールが閉じないようにする
Console.ReadKey();
}
}
class Setting
{
public Display display;
public Sound sound;
}
class Display
{
public string Resolution;
public string Size;
}
class Sound
{
public int MainVolume;
public int EffectVolume;
}
}
Classで保存2(Class内にさらにClass)
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.IO;
namespace LoadSaveSample
{
class Program
{
static void Main(string[] args)
{
Setting setting = new Setting();
setting.display.Resolution = "低解像度";
setting.display.Size = "4096*2048";
setting.sound.MainVolume = 55;
setting.sound.EffectVolume = 54;
// ユーザー定義型 -> JSON オブジェクト -> 文字列
string jsonSave = JToken.FromObject(setting).ToString();
// すべてのデータをテキストファイルに保存
File.WriteAllText("setting.json", jsonSave);
// すべてのデータを読み込んでjsonLoad変数に代入
string jsonLoad = File.ReadAllText("setting.json");
// JSONフォーマットのデータをPlayer型でデシリアライズ。copyHeroに代入。
Setting newSetting = JsonConvert.DeserializeObject<Setting>(jsonLoad);
//// プログラムの終了時にコンソールが閉じないようにする
Console.ReadKey();
}
}
class Setting
{
public Display display = new Display();
public Sound sound = new Sound();
}
class Display
{
public string Resolution = "高解像度";
public string Size = "1024*768";
}
class Sound
{
public int MainVolume = 10;
public int EffectVolume = 5;
}
}
ディスカッション
コメント一覧
まだ、コメントがありません