I'm having trouble with converting a Json object

//here is the line where I initially attempt to convert between JSON and c# object
allchar = JsonUtility.FromJson(File.ReadAllText(Application.dataPath + “/Files/Characters.json”));
//then if I tried to get any data from this object, for example:
Debug.Log(allchar.allcharacter[0].name);
//then unity would give me a “NullReferenceException: Object reference not set to an instance of an object” on that line

// here's the class I'm trying to convert the JSON to
private class charactersjson
        {
            public characterjson[] allcharacter;
        }
//here's the class referenced in the class above
private class characterjson 
    {
        public string name;
        public string[] Dict1;
        public string[] Dict2;
        public string[] Dict3;
    }

//finally here is the example JSON file that I've been using(using it for tests ignore the dialogue lol)
{
  "allcharacter": [
    {
      "name": "terry",
      "Dict1": [ "describe Terry", "tall man with fake jordans", "talk to terry", "get the fuck out of here" ],
      "Dict2": [],
      "Dict3": []
    }
  ]
}

//Another thing to note is that:
Debug.Log(File.ReadAllText(Application.dataPath + "/Files/Characters.json"));
//this would actually receive the data from the file and would display the text in the file as a debug message in unity

//I got this same conversion method to work for a different class that didn't have other JSON objects inside an array, which I'll show below:
currentsavefile = JsonUtility.FromJson<savefile>(File.ReadAllText(Application.dataPath + $"/Saves/savefile{PlayerPrefs.GetInt("savefile")}.json"));
//then the below code would actually give me the data from the file:
Debug.Log(currentlocation);
// and below is the class made for the object
    private class savefile
    {
        public string[] inventory;
        public string location;
        public int [] coordinate;
        public int money;
        public string[] everycharcurrdict; 
        public string[] storydecisions;
    }

Hey, are your classes [System.Serializable]?

So I made a quick test script and what I can get out of this is that you have missed adding [System.Serializable] above your classes.

Here is my code:

using System.IO;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class HELPING_Script : MonoBehaviour
{
    private void Awake()
    {
        characterjson characterjson1 = new characterjson
        {
            name = "terry",
            Dict1 = new string[4] { "describe Terry", "tall man with fake jordans", "talk to terry", "get the fuck out of here" },
            Dict2 = new string[0],
            Dict3 = new string[0],
        };

        characterjson[] allcharacterTest = { characterjson1, characterjson1, characterjson1 };

        charactersjson test = new charactersjson();
        test.allcharacter = allcharacterTest;

        string json = JsonUtility.ToJson(test);

        File.WriteAllText(Application.dataPath + "/Files/Characters.json", json);
    }

    private void Start()
    {
        charactersjson test2 = JsonUtility.FromJson<charactersjson>(File.ReadAllText(Application.dataPath + "/Files/Characters.json"));
        Debug.Log(test2.allcharacter[0].name);
    }

    [System.Serializable]
    private class charactersjson
    {
        public characterjson[] allcharacter;
    }

    [System.Serializable]
    private class characterjson
    {
        public string name;
        public string[] Dict1;
        public string[] Dict2;
        public string[] Dict3;
    }
}

I get your error if I don’t add the [System.Serializable].

Solution found:
var allchar = JsonConvert.DeserializeObject(File.ReadAllText(Application.dataPath + “/Files/Characters.json”));

by using Newtonsoft it finally worked