title: Are there any attributes for serializing Enums as strings in Json.NET?
body: <p>Here's what I have so far:</p>
  
  <pre><code>using Microsoft.VisualStudio.TestTools.UnitTesting;
  using Newtonsoft.Json;
  using Newtonsoft.Json.Converters;
  
  namespace MyProject
  {
      [TestClass]
      public class MyClass
      {
          [TestMethod]
          public void VerifyJsonString()
          {
              var json = new JObject
              {
                  new JProperty("Thing", Things.Cats)
              };
              var actual = json.ToString(Formatting.None);
              const string expected = "{\"Thing\":\"Cats\"}";
              Assert.AreEqual(expected, actual);
          }
      }
  
      [JsonConverter(typeof(StringEnumConverter))]
      public enum Things
      {
          Apples,
          Bananas,
          Cats
      }
  }
  </code></pre>
  
  <p>Unfortunately, this test fails as it serializes it as <code>{"Thing":2}</code> instead. How can I get it to serialize the enum properly? I realize I could explicitly call <code>.ToString()</code> on it but I don't want to. I'd rather have some attribute so I don't have to remember to do that each time.</p>