8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

UnityAdvent Calendar 2023

Day 10

[Unity]Newtonsoft.Jsonの基本的な使い方

Last updated at Posted at 2023-12-12

概要

UnityでJSONを扱いたい時の選択肢にはJsonUtilityやUtf8Jsonなどがあります。今回はそれらではなくNewtonsoft.Jsonについての記事です。

本文

導入

Unityのバージョンによっては標準でNewtonsoft.Jsonが入っています。もし入ってなかった場合は
①メニューからWindows > PackageManager
②左上の+ボタン > Add Package from git URL
③URL欄に「com.unity.nuget.newtonsoft-json」と入力して「Add」を押す
この手順でNewtonsoft.Jsonが使えるようになります。

コード

以下にシリアライズ&デシリアライズのサンプルコードを載せます。
Playerクラス型の実体を一度Json型に変換してすぐPlayerクラス型に戻しています。
最後にこの変換を経た内容をログに表示するサンプルコードです。

public class Player
{
    public string Name;
    public int Level;
    public int Health;
}
using Newtonsoft.Json;
using UnityEngine;

public class GameManager : MonoBehaviour
{
    void Start()
    {
        var player = new Player();
        player.Name = "Player 1";
        player.Level = 1;
        player.Health = 100;

        // PlayerクラスからJSONを生成
        var json = JsonConvert.SerializeObject(player);
        // JSONからPlayerクラスを生成
        var model = JsonConvert.DeserializeObject<Player>(json);

        Debug.Log("Name: " + model.Name);
        Debug.Log("Level: " + model.Level);
        Debug.Log("Health: " + model.Health);
    }
}

補足

APIでプロパティ名と違うキーを扱いたい時は以下のように記述します。

public class Player
{
    [JsonProperty("player_name")]
    public string Name;
    [JsonProperty("player_level")]
    public int Level;
    [JsonProperty("player_health")]
    public int Health;
}
8
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?