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

时间:2011-11-01 14:20:59

标签: c# json

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

JsonConvert.SerializeObject(new { label = "MyLabel1" });

{ "label":"MyLabel1" }

但我希望得到没有引用的键,如

{ label: "MyLabel1"}

有没有办法使用jsonconvert将对象转换为json withoud“key”-quotations?

2 个答案:

答案 0 :(得分:8)

任何期望用于创建对象的JSON或实际JavaScript表示法(它是JSON的超集)的库都应该可以正常使用引号。

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

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();
    }
}

答案 1 :(得分:0)

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

accessibilityLabel