Data——Json_data.json

1.JsonUtility

  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using System;
  5. [Serializable]
  6. public class Person
  7. {
  8. public string name;
  9. public int age;
  10. }
  11. [Serializable]
  12. public class Persons
  13. {
  14. public Person[] persons;
  15. }
  16. public class JsonUtilityDemo : MonoBehaviour
  17. {
  18. void Start()
  19. {
  20. //创建,解析
  21. //两种方法:
  22. //LitJson 和 JsonUtility
  23. //创建
  24. Person person1 = new Person();
  25. person1.name = "李逍遥";
  26. person1.age = 18;
  27. //转成json字符串
  28. string jsonStr1 = JsonUtility.ToJson(person1);
  29. Person person2 = new Person();
  30. person2.name = "王小虎";
  31. person2.age = 8;
  32. Persons persons = new Persons();
  33. persons.persons = new Person[] { person1, person2 };
  34. string jspnStr2 = JsonUtility.ToJson(persons);
  35. Debug.Log(jspnStr2);
  36. //{"persons":[{"name":"李逍遥","age":18},{"name":"王小虎","age":8}]}
  37. //解析
  38. Persons ps = JsonUtility.FromJson<Persons>(jspnStr2);
  39. foreach (Person p in ps.persons)
  40. {
  41. Debug.Log(p.name);
  42. Debug.Log(p.age);
  43. }
  44. }
  45. }

2.LitJson

  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using LitJson;
  5. public class Hero
  6. {
  7. public string name;
  8. public int age;
  9. }
  10. public class Heros
  11. {
  12. public Hero[] heroes;
  13. }
  14. public class LitJsonDemo : MonoBehaviour
  15. {
  16. void Start()
  17. {
  18. //Func1();
  19. //Func2();
  20. Func3();
  21. }
  22. //第一种创建和解析的方法
  23. void Func1()
  24. {
  25. Hero hero1 = new Hero();
  26. hero1.name = "超人";
  27. hero1.age = 40;
  28. Hero hero2 = new Hero();
  29. hero2.name = "蝙蝠侠";
  30. hero2.age = 45;
  31. Heros heros = new Heros();
  32. heros.heroes = new Hero[] { hero1, hero2 };
  33. //创建json
  34. string jsonStr = JsonMapper.ToJson(heros);
  35. Debug.Log(jsonStr);
  36. //{"heroes":[{"name":"\u8D85\u4EBA","age":40},{"name":"\u8759\u8760\u4FA0","age":45}]}
  37. //解析json
  38. Heros hs = JsonMapper.ToObject<Heros>(jsonStr);
  39. for (int i = 0; i < hs.heroes.Length; i++)
  40. {
  41. Debug.Log(hs.heroes[i].name);
  42. Debug.Log(hs.heroes[i].age);
  43. }
  44. }
  45. //第二种创建json的方法
  46. void Func2()
  47. {
  48. /*JsonData jd = new JsonData();//代表js里面的一个类或者一个数组
  49. //jd.SetJsonType(JsonType.Array);//说明他是一个js数组 可以不写
  50. jd["name"] = "超人";
  51. jd["power"] = 90;
  52. Debug.Log(jd.ToJson());
  53. //{"name":"\u8D85\u4EBA","power":90}*/
  54. JsonData herosJD = new JsonData();
  55. JsonData hero1JD = new JsonData();
  56. hero1JD["name"] = "超人";
  57. hero1JD["power"] = 90;
  58. JsonData hero2JD = new JsonData();
  59. hero2JD["name"] = "蝙蝠侠";
  60. hero2JD["power"] = 80;
  61. JsonData heros = new JsonData();
  62. heros.Add(hero1JD);
  63. heros.Add(hero2JD);
  64. herosJD["heros"] = heros;
  65. Debug.Log(herosJD.ToJson());
  66. //{"heros":[{"name":"\u8D85\u4EBA","power":90},{"name":"\u8759\u8760\u4FA0","power":80}]}
  67. }
  68. //第二种解析json的方法
  69. void Func3()
  70. {
  71. string jsonStr = "{'heros':[{'name':'超人','power':90},{'name':'蝙蝠侠','power':80}]}";
  72. JsonData herosJD = JsonMapper.ToObject(jsonStr);
  73. JsonData heros = herosJD["heros"];
  74. foreach (JsonData heroJD in heros)
  75. {
  76. Debug.Log(heroJD["name"].ToString());
  77. Debug.Log((int)heroJD["power"]);
  78. }
  79. }
  80. }