Extract data from a litjson file and load it to a list C#
Sorry this is a repost, I accidentally erased my other one. I'm a total noob on here, but alright at unity engine. Anyway I was wonder how would I go about extracting data from a litjson save file (Where I saved data from one list) , and load it in another list. Thanks.
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
[System.Serializable]
public class JsonIcons {
public string IconName;//Shows the icon Name in the list
public int IconID;// Shows the Icon ID in the list
public Sprite AssignIcon;
public JsonIcons(string Name, int ID )
{
IconName = Name;
IconID = ID;
}
public JsonIcons()
{
}
}
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using LitJson;
using System.IO;
//This class that does the saving
public class JsonTest : MonoBehaviour {
public List<JsonIcons> JIcon = new List<JsonIcons>();
public JsonData JCD;
protected JsonIcons KZ,
TestTK;
public void Start()
{
TestTK = new JsonIcons("Kagami", 40);
KZ = new JsonIcons("Magic", 0);
JIcon.Add(TestTK); //Add things to the list to be save
JIcon.Add(KZ);
JCD = JsonMapper.ToJson(JIcon);
//This is where I saved the things inside the JIcon list to a Json file
File.WriteAllText(Application.dataPath + "/JsonSaveTest.json", JCD.ToString());
//Debug.Log(JCD);
}
}
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using LitJson;
public class JsonReadTest : MonoBehaviour {
public List<JsonIcons> ReadSJ = new List<JsonIcons>();
private string JString;
public JsonData IconData;
// Use this for initialization
void Start ()
{
//Trying to get this file to load in the correct format inside the ReadSJ list
JString = File.ReadAllText(Application.dataPath + "/JsonFiles/JsonSaveTest.json");
IconData = JsonMapper.ToObject(JString);
}
// Update is called once per frame
void Update ()
{
}
}
Answer by GAMZER0 · Oct 01, 2015 at 05:43 AM
Hey what's up I was looking for your old post, now I see why I couldn't find it. I believe I have something that could steer you in the right way, as it doesn't convert the whole list at once just only one element. But as I was messing around I came up with something like this. Maybe someone has a better way. But this is what I got:
using UnityEngine;
using System; //Need this for the convert.Int32
using System.Collections;
using System.Collections.Generic;
using System.IO;
using LitJson;
public class JsonReadTest : MonoBehaviour {
public List<JsonIcons> ReadSJ = new List<JsonIcons>();
public JsonIcons JI;
private string JString;
public JsonData IconData;
//public JsonIcons[] ExampleTest = Directory.GetFiles(Application.dataPath );
// Use this for initialization
void Start ()
{ JString = File.ReadAllText(Application.dataPath + "/JsonFiles/JsonSaveTest.json");
IconData = JsonMapper.ToObject(JString);
JI = new JsonIcons();// This helps to add things to this list
JI.IconName = IconData[0]["IconName"].ToString(); //This add the Iconname to the list
JI.IconID = Convert.ToInt32( IconData[0]["IconID"].ToString());//This converts the number to be used as a string to the list
Debug.Log(JString);
ReadSJ.Add(JI); //And this adds the things inside of "new JsonIcons()"
}
}
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.IO;//You don't need this I was just testing
using LitJson;//You don't need this I was just testing
[System.Serializable]
public class JsonIcons {
public string IconName;
public int IconID;
public Sprite AssignIcon;
public JsonIcons(string Name, int ID )
{
IconName = Name;
IconID = ID;
}
}
Thanks a lot dude!!!!!! I really really Appreciate it. This will help me out a lot. :-)
No prob my friend, I glad I could of help. I know how annoying it is to get stuck. You could probably use a for
loop or something to loop through and add things to the list, and to clean things up. Ins$$anonymous$$d of adding them in one by one, because that would be very time consu$$anonymous$$g, and a bunch of unnecessary code.
That's a very good idea I was thinkn along the lines of for loop.
Your answer
![](https://koobas.hobune.stream/wayback/20220612035633im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Problem when acessing a list from another script? (ArgumentOutOfRangeException) 0 Answers
Is there anyway to make a list of prewritten variables? (C#) 2 Answers
Insert string into empty list at a specific index 0 Answers
How to get all children of a Gameobject with a certain component 2 Answers
ArgumentOutOfRangeException: Argument is out of range. 1 Answer