Javascript 对“有异议”;位置0处json中的意外标记u;
我正在通过以下代码将DataTable转换为JSON:Javascript 对“有异议”;位置0处json中的意外标记u;,javascript,c#,json,Javascript,C#,Json,我正在通过以下代码将DataTable转换为JSON: public string DataTableToJSONWithJSONNet(DataTable table) { string JSONString = string.Empty; JSONString = JsonConvert.SerializeObject(table); return JSONString; } 问题似乎在于,这并没有返回正确的JSON。JSONString的值为: "{\"DataT
public string DataTableToJSONWithJSONNet(DataTable table)
{
string JSONString = string.Empty;
JSONString = JsonConvert.SerializeObject(table);
return JSONString;
}
问题似乎在于,这并没有返回正确的JSON。JSONString的值为:
"{\"DataTable.RemotingVersion\":{\"Major\":2,\"Minor\":0,\"Build\":-1,\"Revision\":-1,\"MajorRevision\":-1,\"MinorRevision\":-1},\"XmlSchema\":\"<?xml version=\\\"1.0\\\" encoding=\\\"utf-16\\\"?>\\r\\n<xs:schema xmlns=\\\"\\\" xmlns:xs=\\\"http://www.w3.org/2001/XMLSchema\\\" xmlns:msdata=\\\"urn:schemas-microsoft-com:xml-msdata\\\">\\r\\n <xs:element name=\\\"Table1\\\">\\r\\n <xs:complexType>\\r\\n <xs:sequence>\\r\\n <xs:element name=\\\"ID\\\" type=\\\"xs:int\\\" msdata:targetNamespace=\\\"\\\" minOccurs=\\\"0\\\" />\\r\\n <xs:element name=\\\"ImageURL\\\" type=\\\"xs:string\\\" msdata:targetNamespace=\\\"\\\" minOccurs=\\\"0\\\" />\\r\\n <xs:element name=\\\"Price\\\" type=\\\"xs:decimal\\\" msdata:targetNamespace=\\\"\\\" minOccurs=\\\"0\\\" />\\r\\n <xs:element name=\\\"Description\\\" type=\\\"xs:string\\\" msdata:targetNamespace=\\\"\\\" minOccurs=\\\"0\\\" />\\r\\n <xs:element name=\\\"UploadDate\\\" type=\\\"xs:dateTime\\\" msdata:targetNamespace=\\\"\\\" minOccurs=\\\"0\\\" />\\r\\n <xs:element name=\\\"ExpDate\\\" type=\\\"xs:dateTime\\\" msdata:targetNamespace=\\\"\\\" minOccurs=\\\"0\\\" />\\r\\n <xs:element name=\\\"Status\\\" type=\\\"xs:string\\\" msdata:targetNamespace=\\\"\\\" minOccurs=\\\"0\\\" />\\r\\n </xs:sequence>\\r\\n </xs:complexType>\\r\\n </xs:element>\\r\\n <xs:element name=\\\"tmpDataSet\\\" msdata:IsDataSet=\\\"true\\\" msdata:MainDataTable=\\\"Table1\\\" msdata:UseCurrentLocale=\\\"true\\\">\\r\\n <xs:complexType>\\r\\n <xs:choice minOccurs=\\\"0\\\" maxOccurs=\\\"unbounded\\\" />\\r\\n </xs:complexType>\\r\\n </xs:element>\\r\\n</xs:schema>\",\"XmlDiffGram\":\"<diffgr:diffgram xmlns:msdata=\\\"urn:schemas-microsoft-com:xml-msdata\\\" xmlns:diffgr=\\\"urn:schemas-microsoft-com:xml-diffgram-v1\\\">\\r\\n <tmpDataSet>\\r\\n <Table1 diffgr:id=\\\"Table11\\\" msdata:rowOrder=\\\"0\\\">\\r\\n <ID>1</ID>\\r\\n <ImageURL>https://i.imgur.com/S59HjAe.jpg </ImageURL>\\r\\n <Price>123.0000</Price>\\r\\n <Description>123</Description>\\r\\n <UploadDate>2019-04-19T08:30:56.913-05:00</UploadDate>\\r\\n <ExpDate>1900-01-01T00:00:00-06:00</ExpDate>\\r\\n <Status>New</Status>\\r\\n </Table1>\\r\\n </tmpDataSet>\\r\\n</diffgr:diffgram>\"}"
编辑3:如果我将C#更改为返回的DT(而不是序列化),如下所示:
public DataTable GetItems()
{
DataTable Items;
try
{
DataTable dt = new DataTable();
string Connection = "Data Source=TEST; Initial Catalog=TEST;Persist Security Info=True;User ID=TEST;Password=TEST"; //ConfigurationManager.ConnectionStrings["testConn"].ConnectionString;
string Query = "SELECT * FROM [TEST] WHERE [Status] <> 'CLOSED'";
using (SqlConnection conn = new SqlConnection(Connection))
{
conn.Open();
SqlCommand cmd = new SqlCommand(Query, conn)
{
CommandType = CommandType.Text
};
//cmd.Parameters.Add(new SqlParameter("@this", "value"));
cmd.ExecuteNonQuery();
SqlDataAdapter dataAdapter = new SqlDataAdapter(cmd);
dataAdapter.Fill(dt);
conn.Close();
};
Items = dt;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return Items;
}
编辑4:
public class jsonMessage
{
public string Message { get; set; }
public string MessageList { get; set; }
public bool Status { get; set; }
}
看看你想要的是什么done@FragEden-我不知道你现在的问题是什么。你可以把你的编辑汇总成一个简单的问题吗?看看你想要的是什么done@FragEden-我不知道你现在的问题是什么。请你把你的编辑汇总成一个简单的问题好吗?
Object
data: "{"DataTable.RemotingVersion":{"Major":2,"Minor":0,"Build":-1,"Revision":-1,"MajorRevision":-1,"MinorRevision":-1},"XmlSchema":"<?xml version=\"1.0\" encoding=\"utf-16\"?>\r\n<xs:schema xmlns=\"\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\r\n <xs:element name=\"Table1\">\r\n <xs:complexType>\r\n <xs:sequence>\r\n <xs:element name=\"ID\" type=\"xs:int\" msdata:targetNamespace=\"\" minOccurs=\"0\" />\r\n <xs:element name=\"ImageURL\" type=\"xs:string\" msdata:targetNamespace=\"\" minOccurs=\"0\" />\r\n <xs:element name=\"Price\" type=\"xs:decimal\" msdata:targetNamespace=\"\" minOccurs=\"0\" />\r\n <xs:element name=\"Description\" type=\"xs:string\" msdata:targetNamespace=\"\" minOccurs=\"0\" />\r\n <xs:element name=\"UploadDate\" type=\"xs:dateTime\" msdata:targetNamespace=\"\" minOccurs=\"0\" />\r\n <xs:element name=\"ExpDate\" type=\"xs:dateTime\" msdata:targetNamespace=\"\" minOccurs=\"0\" />\r\n <xs:element name=\"Status\" type=\"xs:string\" msdata:targetNamespace=\"\" minOccurs=\"0\" />\r\n </xs:sequence>\r\n </xs:complexType>\r\n </xs:element>\r\n <xs:element name=\"tmpDataSet\" msdata:IsDataSet=\"true\" msdata:MainDataTable=\"Table1\" msdata:UseCurrentLocale=\"true\">\r\n <xs:complexType>\r\n <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\" />\r\n </xs:complexType>\r\n </xs:element>\r\n</xs:schema>","XmlDiffGram":"<diffgr:diffgram xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\" xmlns:diffgr=\"urn:schemas-microsoft-com:xml-diffgram-v1\">\r\n <tmpDataSet>\r\n <Table1 diffgr:id=\"Table11\" msdata:rowOrder=\"0\">\r\n <ID>1</ID>\r\n <ImageURL>https://i.imgur.com/S59HjAe.jpg </ImageURL>\r\n <Price>123.0000</Price>\r\n <Description>123</Description>\r\n <UploadDate>2019-04-19T08:30:56.913-05:00</UploadDate>\r\n <ExpDate>1900-01-01T00:00:00-06:00</ExpDate>\r\n <Status>New</Status>\r\n </Table1>\r\n </tmpDataSet>\r\n</diffgr:diffgram>"}"
result: true
__proto__: Object
public DataTable GetItems()
{
DataTable Items;
try
{
DataTable dt = new DataTable();
string Connection = "Data Source=TEST; Initial Catalog=TEST;Persist Security Info=True;User ID=TEST;Password=TEST"; //ConfigurationManager.ConnectionStrings["testConn"].ConnectionString;
string Query = "SELECT * FROM [TEST] WHERE [Status] <> 'CLOSED'";
using (SqlConnection conn = new SqlConnection(Connection))
{
conn.Open();
SqlCommand cmd = new SqlCommand(Query, conn)
{
CommandType = CommandType.Text
};
//cmd.Parameters.Add(new SqlParameter("@this", "value"));
cmd.ExecuteNonQuery();
SqlDataAdapter dataAdapter = new SqlDataAdapter(cmd);
dataAdapter.Fill(dt);
conn.Close();
};
Items = dt;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return Items;
}
Unexpected token o in JSON at position 1
public class jsonMessage
{
public string Message { get; set; }
public string MessageList { get; set; }
public bool Status { get; set; }
}