Json.net deserialization problem

So im doing a databse for my survival game and recently i started adding attachments but i have a problem with deserializing them from Json. My code looks like this:

string weaponData;
public List<Item> database = new List<Item>();

public void ConstructWeaponDatabase(){
          AddItemsToDatabase(JsonConvert.DeserializeObject<List<Item>>(weaponData));
}

[System.Serializable]
public class Attachment {
    public string name;
    public List<string> acceptedThings;
    public int attachedItem;
}

[System.Serializable]
public class Item {
    //variables
    public List<Attachment> Attachments;
    //other stuff
}

Weapon data is loaded from a .json file by ReadAllText().
Add items to database goes through every item and initializes unserializable data(icon, prefab,…).

My json file looks like this:

[{
       [other item]
}
,{
	[other variables]
	
	"attachments":[
		{
			"name": "Barrel",
			"acceptedThings": ["barrel", "silencer", "flare"],
			"default": -1
		},
		{
			"name": "Scope",
			"acceptedThings": ["scope", "nothing", "random stuff"],
 			"default": -1
		}
		
	]
}]

For some strange reason it initializes all other variables just fine but the lenght of Attachments stays 0. Any ideas?

Uhm “JsonConvert” is neither a Unity class nor a C# default class. I guess it’s the Newtonsoft class?.

Where does the JSON come from? Have you serialized the classes or have you written it yourself?

The most likely cause is that you have written “attachments” in the json file and your list is actually named “Attachments”. I’m pretty sure that the serializer / deserializer cares about casing ^^.