Как избавиться от кавычек в имени свойства файла JSON с помощью NewtonSoft JSON.Net Serialize ()? [dубликат]

Cuttlefish - это инструмент, который помогает автоматизировать изменения настроек на основе таких событий, как подключение и отключение питания

28
задан 21 January 2017 в 17:31

1 ответ

Это возможно, но я советую против этого, поскольку это создаст недействительный 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"}

Если вы установили JsonSerializer экземпляра JsonTextWriter в значение false, имена объектов больше не будут цитироваться.

34
ответ дан 15 August 2018 в 16:00

Другие вопросы по тегам:

Похожие вопросы: