Heim >Backend-Entwicklung >C++ >Wie kann ich JSON- und JSON -Arrays in Einheit mit JSONUTILITY serialisieren und deserialisieren?

Wie kann ich JSON- und JSON -Arrays in Einheit mit JSONUTILITY serialisieren und deserialisieren?

Linda Hamilton
Linda HamiltonOriginal
2025-02-03 04:07:10588Durchsuche

Jsonutility -Serialisierung und Desertation JSON- und JSON -Arrays werden in Einheit verwendet.

Frage

Wie kann ich C#verwenden, um JSON -Daten (einzelnes Objekt und Array) in Einheit zu analysieren und zu verarbeiten, insbesondere mit Boomlagoon.json, Minijson oder JSONutility?

Antwort

Ausgehend von der Version von Unity 5.3.3 wird empfohlen, JSONutility zu verwenden, um JSON -Daten zu verarbeiten, da sie eine hohe Leistung und eine einfache Verwendung aufweisen.

<.> 1. Die Serialisierung und Ableitung eines einzelnen Datenobjekts:

Serialisierung:

Ausgabe: Kapitalisierung:

<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. Die Serialisierung und Ableitung des JSON -Arrays:
<code class="language-json">{"playerId":"8484239823","playerLoc":"Powai","playerNick":"Random Nick"}</code>

Um das JSON -Array zu verarbeiten, können Sie die Hilfsklasse aus diesem Github -Lagerhaus verwenden:

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

Serialisierung:

Ausgabe: Kapitalisierung:

<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>

Andere Vorsichtsmaßnahmen

für JSON mit digitalen oder digitalen Attributen:
<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>
Sie können in Betracht ziehen, SimpleJson in Unity Wiki zu verwenden.

JsonUtility -Fehler:
<code class="language-json">{"Items":[{"playerId":"8484239823","playerLoc":"Powai","playerNick":"Random Nick"},{"playerId":"512343283","playerLoc":"User2","playerNick":"Rand Nick 2"}]}</code>
Stellen Sie sicher, dass die Klasse kein Array ist,

Attribute hat und die Mitglieder nicht als Attribute definiert sind (löschen ).

<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>

Diese überarbeitete Ausgabe verwaltet das Originalbild und sein Format, den Text für einen verbesserten Fluss und die Klarheit und die konsistenten Codebildung der Benutzer

Das obige ist der detaillierte Inhalt vonWie kann ich JSON- und JSON -Arrays in Einheit mit JSONUTILITY serialisieren und deserialisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn