如何使用jsonconvert - without - key- quotes将object转换为json
本文关键字:转换 object json key- 何使用 jsonconvert without quotes | 更新日期: 2023-09-27 18:13:04
我使用jsonconvert将简单对象转换为json,如
JsonConvert.SerializeObject(new { label = "MyLabel1" });
{ "label":"MyLabel1" }
但是我想要得到没有引号的键,比如
{ label: "MyLabel1"}
是否有一种方法将对象转换为json没有"键"-引号使用json转换?
任何需要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();
}
}
我补充回答@svick。对于保存格式,您需要使用StringBuilder来代替StringWriter。
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();
}
}