我正在使用此代码将 DataSet 转换为 JSon。
JObject jsonObject = new JObject();
string jsonString = string.Empty;
JsonSerializerSettings jsonSettings = new JsonSerializerSettings();
jsonSettings.StringEscapeHandling = StringEscapeHandling.EscapeHtml;
jsonString = JsonConvert.SerializeObject(dsResults, jsonSettings);
jsonObject = JObject.Parse(jsonString);
if (!string.IsNullOrEmpty(identifier))
jsonObject.AddFirst(new JProperty("identifier", identifier));
if (!string.IsNullOrEmpty(resourceType))
jsonObject.AddFirst(new JProperty("resourceType", resourceType));
if (!string.IsNullOrEmpty(patientId))
{
jsonObject.AddFirst(new JProperty("patientId", patientId));
jsonObject.AddFirst(new JProperty("status", "'{success: true}'"));
}
jsonString = jsonObject.ToString();
并且,它给我输出(附加数据集名称和引号内的所有内容)为;
{
"TableName": [
{
"status": "{success: true}",
"softwareName": "MY Software",
"softwareVersion": "0.4.5.9",
"TimeZone": "(UTC+12:00) City, Country"
}
]
}
但是,我想要这样的输出
{
status: {success: true},
softwareName: "My Software ",
softwareVersion: "0.4.5.9",
TimeZone: (UTC+12:00) City, Country
}
上面的代码有什么问题或者我可以做哪些修改?我不想用jsonString.Replace("","")
或索引方法来实现我的结果。
您可能应该避免使用它,因为它不符合 JSON 标准。
也就是说,如果您需要继续下去,Christophe Geers 提供了一个很好的解决方案:https ://stackoverflow.com/a/7555096/4636912
使用 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"}
如果将 JsonTextWriter 实例的 QuoteName 属性设置为 false,则将不再引用对象名称。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句