JSONData.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. using System;
  2. using System.IO;
  3. namespace I2.Loc.SimpleJSON
  4. {
  5. public class JSONData : JSONNode
  6. {
  7. public JSONData(string aData)
  8. {
  9. this.m_Data = aData;
  10. }
  11. public JSONData(float aData)
  12. {
  13. this.AsFloat = aData;
  14. }
  15. public JSONData(double aData)
  16. {
  17. this.AsDouble = aData;
  18. }
  19. public JSONData(bool aData)
  20. {
  21. this.AsBool = aData;
  22. }
  23. public JSONData(int aData)
  24. {
  25. this.AsInt = aData;
  26. }
  27. public override string Value
  28. {
  29. get
  30. {
  31. return this.m_Data;
  32. }
  33. set
  34. {
  35. this.m_Data = value;
  36. }
  37. }
  38. public override string ToString()
  39. {
  40. return "\"" + JSONNode.Escape(this.m_Data) + "\"";
  41. }
  42. public override string ToString(string aPrefix)
  43. {
  44. return "\"" + JSONNode.Escape(this.m_Data) + "\"";
  45. }
  46. public override void Serialize(BinaryWriter aWriter)
  47. {
  48. JSONData jsondata = new JSONData(string.Empty);
  49. jsondata.AsInt = this.AsInt;
  50. if (jsondata.m_Data == this.m_Data)
  51. {
  52. aWriter.Write(4);
  53. aWriter.Write(this.AsInt);
  54. return;
  55. }
  56. jsondata.AsFloat = this.AsFloat;
  57. if (jsondata.m_Data == this.m_Data)
  58. {
  59. aWriter.Write(7);
  60. aWriter.Write(this.AsFloat);
  61. return;
  62. }
  63. jsondata.AsDouble = this.AsDouble;
  64. if (jsondata.m_Data == this.m_Data)
  65. {
  66. aWriter.Write(5);
  67. aWriter.Write(this.AsDouble);
  68. return;
  69. }
  70. jsondata.AsBool = this.AsBool;
  71. if (jsondata.m_Data == this.m_Data)
  72. {
  73. aWriter.Write(6);
  74. aWriter.Write(this.AsBool);
  75. return;
  76. }
  77. aWriter.Write(3);
  78. aWriter.Write(this.m_Data);
  79. }
  80. private string m_Data;
  81. }
  82. }