Json.Net – Сериализовать имя свойства без кавычек
Я пытаюсь заставить Json.Net сериализовать имя свойства без меток кавычек и затруднять поиск документации в Google. Как я могу это сделать?
Он находится в очень небольшой части большого Json-рендера, поэтому я бы предпочел либо добавить атрибут свойства, либо переопределить метод сериализации в classе.
В настоящее время это выглядит следующим образом:
- Отключить classы JSON до C #
- Как обрабатывать как отдельный элемент, так и массив для одного и того же свойства с помощью JSON.net
- JsonValueProviderFactory выбрасывает «запрос слишком большой»
- Заставить JSON.NET включать миллисекунды при сериализации DateTime (даже если компонент ms равен нулю)
- Как установить Json.Net в качестве сериализатора по умолчанию для службы WCF REST
"event_modal": { "href":"file.html", "type":"full" }
И я надеюсь, что это будет выглядеть так: ( href
и type
без кавычек)
"event_modal": { href:"file.html", type:"full" }
Из classа:
public class ModalOptions { public object href { get; set; } public object type { get; set; } }
- Как убедиться, что строка действительна JSON с использованием JSON.NET
- Как преобразовать datatable в строку json с помощью json.net?
- Сериализовать словарь как массив (пар ключей)
- Как игнорировать неизвестные значения enum во время десериализации json?
- JSON.net сериализуется непосредственно из oledbconnection
- Разбор JSON с использованием Json.net
- .NET NewtonSoft JSON десериализует карту для другого имени свойства
- JToken: получить исходное / оригинальное значение JSON
Это возможно, но я советую против этого, поскольку это создаст недействительный JSON, как Марсело и Марк указали в своих комментариях.
Используя библиотеку Json.NET, вы можете добиться этого следующим образом:
[JsonObject(MemberSerialization.OptIn)] public class ModalOptions { [JsonProperty] public object href { get; set; } [JsonProperty] public object type { get; set; } }
При сериализации объекта используйте тип JsonSerializer вместо статического типа JsonConvert .
Например:
var options = new ModalOptions { href = "file.html", type = "full" }; var serializer = new JsonSerializer(); var stringWriter = new StringWriter(); using (var writer = new JsonTextWriter(stringWriter)) { writer.QuoteName = false; serializer.Serialize(writer, options); } var json = stringWriter.ToString();
Это даст:
{href:"file.html",type:"full"}
Если вы установите для свойства QuoteName экземпляра JsonTextWriter значение false, имена объектов больше не будут цитироваться.