JsonControl.cs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. using LitJson;
  2. using Newtonsoft.Json;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using TMPro;
  7. using UnityEngine;
  8. public class JsonControl : MonoBehaviour
  9. {
  10. private static JsonControl instance;
  11. private JsonControl()
  12. {
  13. }
  14. public static JsonControl Instance()
  15. {
  16. if (instance == null)
  17. instance = new JsonControl();
  18. return instance;
  19. }
  20. /// <summary>
  21. /// Json 解析
  22. /// </summary>
  23. /// <param name="message"></param>
  24. /// <returns></returns>
  25. public Root ToJsonData(String message)
  26. {
  27. try
  28. {
  29. JsonData json = JsonMapper.ToObject(message);
  30. JsonData data = json["projectinfo"]["navLines"];
  31. message = data.ToJson();
  32. //message = message.Substring(1, message.Length - 1);
  33. message = "{\"navLines\":" + message + "}";
  34. Debug.Log(message);
  35. Root root = JsonMapper.ToObject<Root>(message);
  36. Debug.Log(root.navLines.Count);
  37. return root;
  38. }
  39. catch (Exception)
  40. {
  41. Debug.LogError("Json 传入格式不正确 无法解析" );
  42. return null;
  43. }
  44. }
  45. }
  46. /// <summary>
  47. /// Json 格式
  48. /// </summary>
  49. public class MPItem
  50. {
  51. /// <summary>
  52. ///
  53. /// </summary>
  54. public double X { get; set; }
  55. /// <summary>
  56. ///
  57. /// </summary>
  58. public double Y { get; set; }
  59. /// <summary>
  60. ///
  61. /// </summary>
  62. public double Z { get; set; }
  63. }
  64. public class PointsItem
  65. {
  66. /// <summary>
  67. /// 检测区域位置
  68. /// </summary>
  69. public double X { get; set; }
  70. /// <summary>
  71. /// Y
  72. /// </summary>
  73. public double Y { get; set; }
  74. /// <summary>
  75. /// Z
  76. /// </summary>
  77. public double Z { get; set; }
  78. /// <summary>
  79. /// 是否是检查点
  80. /// </summary>
  81. public int T { get; set; }
  82. /// <summary>
  83. /// 检测区域的长度
  84. /// </summary>
  85. public int TL { get; set; }
  86. /// <summary>
  87. /// 检测区域的宽度
  88. /// </summary>
  89. public int TH { get; set; }
  90. /// <summary>
  91. /// 展览的类别
  92. /// </summary>
  93. public string MN { get; set; }
  94. /// <summary>
  95. /// 展览的名称
  96. /// </summary>
  97. public string ML { get; set; }
  98. /// <summary>
  99. /// 展览物的角度
  100. /// </summary>
  101. public int D { get; set; }
  102. /// <summary>
  103. /// 展览物的位置
  104. /// </summary>
  105. //public double MPX { get; set; }
  106. //public double MPY { get; set; }
  107. //public double MPZ { get; set; }
  108. public List<MPItem> MP { get; set; }
  109. }
  110. public class NavLinesItem
  111. {
  112. /// <summary>
  113. ///
  114. /// </summary>
  115. public string name { get; set; }
  116. /// <summary>
  117. ///
  118. /// </summary>
  119. public List<PointsItem> points { get; set; }
  120. }
  121. public class Root
  122. {
  123. /// <summary>
  124. ///
  125. /// </summary>
  126. // public int projectId { get; set; }
  127. /// <summary>
  128. ///
  129. /// </summary>
  130. public List<NavLinesItem> navLines { get; set; }
  131. }
  132. public class Data
  133. {
  134. public int status { get; set; }
  135. public string registe { get; set; }
  136. public string tagid { get; set; }
  137. public List<Root> projectinfo { get; set; }
  138. }