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
Freigeben: 2025-02-03 04:07:10
Original
587 Leute haben es durchsucht

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>
Nach dem Login kopieren

<.> 2. Die Serialisierung und Ableitung des JSON -Arrays:
<code class="language-json">{"playerId":"8484239823","playerLoc":"Powai","playerNick":"Random Nick"}</code>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren
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>
Nach dem Login kopieren
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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage