Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk bersiri dan deserialize JSON dan JSON Arrays dalam Perpaduan menggunakan JSONUTILITY?

Bagaimana untuk bersiri dan deserialize JSON dan JSON Arrays dalam Perpaduan menggunakan JSONUTILITY?

Linda Hamilton
Linda Hamiltonasal
2025-02-03 04:07:10644semak imbas

Serialization Jsonutility dan Desertation JSON dan JSON Arrays digunakan dalam Perpaduan.

Soalan

Bagaimana menggunakan C#untuk menghuraikan dan memproses data JSON (objek tunggal dan array) dalam perpaduan, terutamanya menggunakan boomlagoon.json, minijson atau jsonutility?

Jawab

Bermula dari versi Unity 5.3.3, disarankan untuk menggunakan JSONUTILITY untuk memproses data JSON kerana ia mempunyai prestasi tinggi dan penggunaan mudah.

<.> 1. Serialization dan derivatifisasi objek data tunggal:

Serialization:

output: permodalan:

<code class="language-csharp">Player playerInstance = new Player();
playerInstance.playerId = "8484239823";
playerInstance.playerLoc = "Powai";
playerInstance.playerNick = "Random Nick";
string playerToJson = JsonUtility.ToJson(playerInstance);</code>

<.> 2. Serialization dan derivatif array JSON:
<code class="language-json">{"playerId":"8484239823","playerLoc":"Powai","playerNick":"Random Nick"}</code>

Untuk mengendalikan array JSON, anda boleh menggunakan kelas tambahan dari gudang github ini:

kelas tambahan -jsonhelper.cs
<code class="language-csharp">string jsonString = "{\"playerId\":\"8484239823\",\"playerLoc\":\"Powai\",\"playerNick\":\"Random Nick\"}";
Player player = JsonUtility.FromJson<Player>(jsonString);</code>

Serialization:

output: permodalan:

<code class="language-csharp">public static class JsonHelper
{
    public static T[] FromJson<T>(string json)
    {
        Wrapper<T> wrapper = JsonUtility.FromJson<Wrapper<T>>(json);
        return wrapper.Items;
    }

    public static string ToJson<T>(T[] array)
    {
        Wrapper<T> wrapper = new Wrapper<T>();
        wrapper.Items = array;
        return JsonUtility.ToJson(wrapper);
    }

    private class Wrapper<T>
    {
        public T[] Items;
    }
}</code>

langkah berjaga -jaga lain

untuk JSON dengan atribut digital atau digital:
<code class="language-csharp">Player[] players = new Player[2];
players[0] = new Player { playerId = "8484239823", playerLoc = "Powai", playerNick = "Random Nick" };
players[1] = new Player { playerId = "512343283", playerLoc = "User2", playerNick = "Rand Nick 2" };
string playersToJson = JsonHelper.ToJson(players);</code>
Anda boleh mempertimbangkan menggunakan SimpleJson dalam Wiki Perpaduan.

Kegagalan JSONUTILITY:

Pastikan kelas bukan array, mempunyai atribut
<code class="language-json">{"Items":[{"playerId":"8484239823","playerLoc":"Powai","playerNick":"Random Nick"},{"playerId":"512343283","playerLoc":"User2","playerNick":"Rand Nick 2"}]}</code>
, dan ahli tidak ditakrifkan sebagai atribut (padam

).

<code class="language-csharp">string jsonString = "{\"Items\":[{\"playerId\":\"8484239823\",\"playerLoc\":\"Powai\",\"playerNick\":\"Random Nick\"},{\"playerId\":\"512343283\",\"playerLoc\":\"User2\",\"playerNick\":\"Rand Nick 2\"}]}";
Player[] players = JsonHelper.FromJson<Player>(jsonString);</code>

Output yang disemak ini mengekalkan imej asal dan formatnya, menyusun semula teks untuk aliran dan kejelasan yang lebih baik, dan pengguna yang konsisten membentuk

Atas ialah kandungan terperinci Bagaimana untuk bersiri dan deserialize JSON dan JSON Arrays dalam Perpaduan menggunakan JSONUTILITY?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn