【发布时间】:2020-04-07 08:38:40
【问题描述】:
我正在尝试在 .net core 2.0 中将数据集转换为 JSON,并使用下面的代码来完成此操作
return Ok(JsonConvert.SerializeObject(dataset, Formatting.Indented))
我得到的输出是
"{\n \"DataSet.RemotingVersion\": {\n \"Major\": 2,\n \"Minor\": 0,\n \"Build\": -1,\n \"Revision\": -1,\n \"MajorRevision\": -1,\n \"MinorRevision\": -1\n },\n \"XmlSchema\": \"<?xml version=\\\"1.0\\\" encoding=\\\"utf-16\\\"?>\\n<xs:schema id=\\\"dataset\\\" xmlns=\\\"\\\" xmlns:xs=\\\"http://www.w3.org/2001/XMLSchema\\\" xmlns:msdata=\\\"urn:schemas-microsoft-com:xml-msdata\\\">\\n <xs:element name=\\\"dataset\\\" msdata:IsDataSet=\\\"true\\\" msdata:UseCurrentLocale=\\\"true\\\">\\n <xs:complexType>\\n <xs:choice minOccurs=\\\"0\\\" maxOccurs=\\\"unbounded\\\">\\n <xs:element name=\\\"datatable\\\">\\n <xs:complexType>\\n <xs:sequence>\\n <xs:element name=\\\"cvbf\\\" type=\\\"xs:string\\\" msdata:targetNamespace=\\\"\\\" minOccurs=\\\"0\\\" />\\n </xs:sequence>\\n </xs:complexType>\\n </xs:element>\\n </xs:choice>\\n </xs:complexType>\\n </xs:element>\\n</xs:schema>\",\n \"XmlDiffGram\": \"<diffgr:diffgram xmlns:msdata=\\\"urn:schemas-microsoft-com:xml-msdata\\\" xmlns:diffgr=\\\"urn:schemas-microsoft-com:xml-diffgram-v1\\\" />\"\n}"
我对 C# 开发非常陌生,
- 如何将其转换为正确的 JSON?
- 为什么会这样?
【问题讨论】:
-
尝试:返回 Ok(dataset),设置您想要的序列化方法,在 Global.asax 或 WebApiConfig.cs 中全局设置
-
Newtonsoft.JSON可以处理数据集吗? -
@Prathik Jain 它适用于我的 REST 服务器。在某种程度上...... 2个数据集之间的一种类型的引用不会转移。我会查找它是什么并将其发布在此处以获取信息
-
当 Json 序列化数据集时对我不起作用的是:当有 2 个数据表并在数据集上使用 DataSet.Relations.Add() 时,添加的关系在序列化/反序列化期间丢失
-
看起来您可能正在按照JSON.NET Parser seems to be double serializing my objects 的行对您的
DataSet进行双重序列化,Ok(Object)将对象进行序列化,而不是已经序列化的 JSON。然后它会为您序列化对象。
标签: c# .net xml asp.net-core-2.0 .net-core-2.0