首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用jsonconvert - without - key-quotations将对象转换为json

如何使用jsonconvert - without - key-quotations将对象转换为json
EN

Stack Overflow用户
提问于 2011-11-01 22:20:59
回答 2查看 5.6K关注 0票数 7

我使用jsonconvert将简单对象转换为json,比如

代码语言:javascript
复制
JsonConvert.SerializeObject(new { label = "MyLabel1" });

代码语言:javascript
复制
{ "label":"MyLabel1" }

但是我想要没有引号的密钥,比如

代码语言:javascript
复制
{ label: "MyLabel1"}

有没有办法在没有“键”-quotations的情况下使用json转换对象到json?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-01 22:51:48

任何希望使用JSON或实际的JavaScript表示法来创建对象(它是JSON的超集)的库都应该能够很好地使用引号。

但是如果您真的想删除它们,可以将JsonTextWriter.QuoteName设置为false。要做到这一点,需要编写一些JsonConvert.SerializeObject()手动使用的代码:

代码语言:javascript
复制
private static string SerializeWithoutQuote(object value)
{
    var serializer = JsonSerializer.Create(null);

    var stringWriter = new StringWriter();

    using (var jsonWriter = new JsonTextWriter(stringWriter))
    {
        jsonWriter.QuoteName = false;

        serializer.Serialize(jsonWriter, value);

        return stringWriter.ToString();
    }
}
票数 8
EN

Stack Overflow用户

发布于 2020-09-18 22:18:20

我补充答案@svick。对于保存格式,您需要为StringWriter使用StringBuilder。

代码语言:javascript
复制
 static string SerializeWithoutQuote(object value)
    {
        var builder = new StringBuilder();
        var serializer = JsonSerializer.Create();
        var stringWriter = new StringWriter(builder);
        using (var jsonWriter = new JsonTextWriter(stringWriter))
        {
            jsonWriter.Formatting = Formatting.Indented;
            jsonWriter.QuoteName = false;
            serializer.Serialize(jsonWriter, value);
            return builder.ToString();
        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7967885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档