我使用jsonconvert将简单对象转换为json,比如
JsonConvert.SerializeObject(new { label = "MyLabel1" });至
{ "label":"MyLabel1" }但是我想要没有引号的密钥,比如
{ label: "MyLabel1"}有没有办法在没有“键”-quotations的情况下使用json转换对象到json?
发布于 2011-11-01 22:51:48
任何希望使用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();
}
}发布于 2020-09-18 22:18:20
我补充答案@svick。对于保存格式,您需要为StringWriter使用StringBuilder。
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();
}
}https://stackoverflow.com/questions/7967885
复制相似问题