﻿using UnityEngine;

namespace JLGames.RocketDriver.Actions.Jsonx
{
    public static class JsonArrayUtil
    {
        public static string ToJson<T>(T[] arr)
        {
            var o = new JsonArray<T> {Data = arr};
            var str = JsonUtility.ToJson(o);
            var firstIndex = str.IndexOf('[');
            var lastIndex = str.LastIndexOf(']');
            return str.Substring(firstIndex, lastIndex + 1 - firstIndex);
        }

        public static T[] FromJson<T>(string json)
        {
            var o = new JsonArray<T>();
            o.DataFromJson(json);
            return o.Data;
        }

        public static void FromJsonOverwrite<T>(string json, T[] objectToOverwrite)
        {
            var o = new JsonArray<T>();
            o.DataFromJson(json);
            for (var index = 0; index < objectToOverwrite.Length && index < o.Data.Length; index++)
            {
                objectToOverwrite[index] = o.Data[index];
            }
        }
    }
}