如何将我的数据集转换为没有引号和数据集名称的 Json?

Posted

技术标签:

【中文标题】如何将我的数据集转换为没有引号和数据集名称的 Json?【英文标题】:How can I convert my Dataset to Json without Quotes and Dataset name? 【发布时间】:2017-07-20 10:34:10 【问题描述】:

我正在使用此代码将 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字符串后面写不想用。 实际上,我不想序列化它,但是,我在引号和数据集名称@Breakermind 中有这个 ***.com/questions/949449/… 尝试从变量创建字符串不要使用 json 序列化字符串 s = " \"Name\" : 123 "+variable+""; @WimOmbelets ...感谢您提醒欧比旺的报价,但是,您知道 可能是对的 。与我们打交道的人在技术上是非技术的 【参考方案1】:

您应该避免使用它,因为它不符合 JSON 标准。

也就是说,如果您需要继续使用它,Christophe Geers 提供了一个很好的解决方案:https://***.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,则将不再引用对象名称。

【讨论】:

还有,如何不附加数据集名称?

以上是关于如何将我的数据集转换为没有引号和数据集名称的 Json?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Scala 中将数据帧转换为 Apache Spark 中的数据集?

Grafana 引用数据集变量以使用 Postgres 驱动程序转换图例值

试图将我的数据框拆分为具有代表性的训练集和测试集

EXT的Store返回的数据集,如何转换成JS数组对象?

为深度机器学习标记数据集

SAS将数据集导出为csv或excel,保留换行符