Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

50 linhas
1.4KB

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Formats.Asn1;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using Newtonsoft.Json;
  8. namespace GpsCardGatewayPosition.Common.Helper
  9. {
  10. public class StringJsonConvert : JsonConverter
  11. {
  12. public override bool CanConvert(Type objectType)
  13. {
  14. return objectType == typeof(string);
  15. }
  16. public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
  17. {
  18. if (reader.TokenType == JsonToken.String)
  19. {
  20. return reader.Value;
  21. }
  22. if (reader.TokenType == JsonToken.StartArray)
  23. {
  24. //舍弃[]之间的所有内容
  25. do
  26. {
  27. var temp = reader.Read();
  28. } while (reader.TokenType != JsonToken.EndArray);
  29. }
  30. else if (reader.TokenType == JsonToken.StartObject)
  31. {
  32. //舍弃{}之间的所有内容
  33. do
  34. {
  35. reader.Read();
  36. } while (reader.TokenType != JsonToken.EndObject);
  37. }
  38. return null;
  39. }
  40. public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
  41. {
  42. writer.WriteValue(value.ToString());
  43. }
  44. }
  45. }