JsonControl.cs 3.3 KB

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