Maison > développement back-end > C++ > Comment sérialiser et désérialiser les tableaux JSON et JSON dans Unity en utilisant JSONUtility?

Comment sérialiser et désérialiser les tableaux JSON et JSON dans Unity en utilisant JSONUtility?

Linda Hamilton
Libérer: 2025-02-03 04:07:10
original
587 Les gens l'ont consulté

La sérialisation JSONUtilité et la désertation JSON et JSON sont utilisées dans l'unité.

Question

Comment utiliser C # pour analyser et traiter les données JSON (objet unique et tableau) dans Unity, en particulier en utilisant Boomlagoon.json, Minijson ou Jsonutility?

Réponse

À partir de la version d'Unity 5.3.3, il est recommandé d'utiliser JSONUtility pour traiter les données JSON car elle a des performances élevées et une utilisation facile.

<.> 1. La sérialisation et la dérivé d'un seul objet de données:

Sérialisation:

Sortie: Capitalisation:

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

<.> 2. La sérialisation et la dérivée du tableau JSON:
<code class="language-json">{"playerId":"8484239823","playerLoc":"Powai","playerNick":"Random Nick"}</code>
Copier après la connexion

Afin de gérer le tableau JSON, vous pouvez utiliser la classe auxiliaire de cet entrepôt GitHub:

Classe auxiliaire -jsonhelper.cs
<code class="language-csharp">string jsonString = "{\"playerId\":\"8484239823\",\"playerLoc\":\"Powai\",\"playerNick\":\"Random Nick\"}";
Player player = JsonUtility.FromJson<Player>(jsonString);</code>
Copier après la connexion

Sérialisation:

Sortie: Capitalisation:

<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>
Copier après la connexion

Autres précautions

pour JSON avec des attributs numériques ou numériques:
<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>
Copier après la connexion
Vous pouvez envisager d'utiliser SimpleJSON dans Unity Wiki.

Échec de JSONUtility:
<code class="language-json">{"Items":[{"playerId":"8484239823","playerLoc":"Powai","playerNick":"Random Nick"},{"playerId":"512343283","playerLoc":"User2","playerNick":"Rand Nick 2"}]}</code>
Copier après la connexion
Assurez-vous que la classe n'est pas un tableau, a

les attributs, et les membres ne sont pas définis comme des attributs (supprimer ).

<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>
Copier après la connexion

Cette sortie révisée maintient l'image d'origine et son format, reproche le texte pour un flux et une clarté améliorés, et le formage cohérent des utilisateurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal