Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
1
Question by chinjl · Mar 14, 2019 at 01:36 PM · c#loadjsonsave data

Fail to load data from json to list of list.

Sorry to my bad question because i not sure how my question going to write. I have using JsonUtility to save my data. Below my code.

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 using System.Runtime.Serialization.Formatters.Binary;
 using System.IO;
 
 public class SaveLoadFunction : MonoBehaviour {
   
     AnyScript anyScript;
     void Start()
     {
         anyScript = AnyScript.instance;
     }
 
     private Save CreateSaveData()
     {
         Save save = new Save ();
 
         for (int i = 0; i < anyScript.ListsOfVariable.Count; i++)
         {
             save.variableName.Add (anyScript.ListsOfVariable [i].variableName);
             save.intVariable.Add (anyScript.ListsOfVariable [i].intVariable);
             save.floatVariable.Add (anyScript.ListsOfVariable [i].floatVariable);
             save.boolVariable.Add (anyScript.ListsOfVariable [i].boolVariable);
             save.randomPosition.Add (anyScript.ListsOfVariable [i].randomPosition);
             for (int j = 0; j < anyScript.ListsOfVariable [i].intListVariable.Count; j++)
             {
                 save.intListVariable.Add (anyScript.ListsOfVariable [i].intListVariable [j]);
             }
         }
 
         return save;
     }
 
     public void SaveAsJSON()
     {
         Save save = CreateSaveData ();
         string json = JsonUtility.ToJson (save);
         string filePath = Application.dataPath + "/gamesave.save";
         File.WriteAllText (filePath, json);
 
         Debug.Log ("Saving as JSON: " + json);
     }
 
     public void LoadFromJSON()
     {
         string filePath = Application.dataPath + "/gamesave.save";
 
         if (File.Exists (filePath))
         {
             string json = File.ReadAllText (filePath);
             Save save = JsonUtility.FromJson<Save> (json);
 
             for (int i = 0; i < anyScript.ListsOfVariable.Count; i++)
             {
                 anyScript.ListsOfVariable [i].variableName = save.variableName [i];
                 anyScript.ListsOfVariable [i].intVariable = save.intVariable [i];
                 anyScript.ListsOfVariable [i].floatVariable = save.floatVariable [i];
                 anyScript.ListsOfVariable [i].boolVariable = save.boolVariable [i];
                 anyScript.ListsOfVariable [i].randomPosition = save.randomPosition [i];
                 //?????????????????????????????????????????????????????????????????????????
                 for (int j = 0; j < anyScript.ListsOfVariable [i].intListVariable.Count; j++)
                 {
                     anyScript.ListsOfVariable [i].intListVariable [j] = save.intListVariable [j];
                 }
             }
             Debug.Log ("Saving Variable Loaded");
         }
         else
         {
             Debug.Log ("No Saving Variable Saved");
         }
     }
 

By using code above i have manage to save all the data from the anyscript and success to load most of the data except ListsOfVariable. The AnyScript data will be randomize every time play. Below will be shown the image of before load and after load. alt text alt text Can be see that after load all of the ListsofVariable will only load first 3 number that saved. How to solve this???

z.png (45.2 kB)
a.png (50.8 kB)
Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
0
Best Answer

Answer by Bunny83 · Mar 15, 2019 at 09:08 AM

We don't know how your Save class looks like. However it seems that you just flattened all the data into a few one dimensional arrays. You just concatenate all the int values into one long list of integers. If you are sure that each item actually has 3 values you could pull out the values correctly. However if one element could have 2 another 4 or 7 elements it's impossible to tell which int values belong to which item.


Why don't you model your data as actual objects in json? Json is a structured object notation language. We also don't know how the serializable class that is stored inside your "ListsOfVariable" list looks like. Though i don't see a reason why you couldn't store those directly as json. The only thing that's important is that Unity's JsonUtility does only support an object as root element. So you can not directly save a List / array (which json itself does support). So you should be able to do:

 [System.Serializable]
 public class Save
 {
     public List<YourItemType> allItems;
 }

To save your data you could just do:

 Save save = new Save();
 save.allItems = anyScript.ListsOfVariable;
 string json = JsonUtility.ToJson (save);
 string filePath = Application.dataPath + "/gamesave.save";
 File.WriteAllText (filePath, json);

To load, just do:

 //[...]
 Save save = JsonUtility.FromJson<Save> (json);
 anyScript.ListsOfVariable = save.allItems;

Comment
Add comment · Show 1 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image chinjl · Mar 15, 2019 at 01:35 PM 0
Share

I have try and wow, is it so easy to save the variable... why i think so complicate... Thank you.

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

593 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Save and Load System of multiple objects in scene? 2 Answers

PlayerPrefs: loading saved data from the menu? 1 Answer

Multiple Cars not working 1 Answer

Distribute terrain in zones 3 Answers

Add an array to a class that has been Serialized with BinaryFormatter 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges