Converting DataTable to JSON in ASP Core 2

2k Views Asked by At

I'm currently using the new ASP Core 2 and Newtonsoft.

I got issue in converting DataTable to JSON, seems it was converting my DataTable to XML instead of JSON String.

Returned value:

{"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=\"ProductGroup\" type=\"xs:string\" msdata:targetNamespace=\"\" minOccurs=\"0\" />\r\n        <xs:element name=\"AccountType\" type=\"xs:string\" msdata:targetNamespace=\"\" minOccurs=\"0\" />\r\n        <xs:element name=\"StdDesc\" type=\"xs:string\" msdata:targetNamespace=\"\" minOccurs=\"0\" />\r\n        <xs:element name=\"AltDesc\" type=\"xs:string\" msdata:targetNamespace=\"\" minOccurs=\"0\" />\r\n        <xs:element name=\"Currency\" type=\"xs:string\" msdata:targetNamespace=\"\" minOccurs=\"0\" />\r\n        <xs:element name=\"Conversion\" 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      <ProductGroup>21 </ProductGroup>\r\n      <AccountType>CA</AccountType>\r\n      <StdDesc>Current Accounts         </StdDesc>\r\n      <AltDesc>Current Accounts         </AltDesc>\r\n      <Currency>000 </Currency>\r\n      <Conversion>000000000000</Conversion>\r\n    </Table1>\r\n    <Table1 diffgr:id=\"Table12\" msdata:rowOrder=\"1\">\r\n      <ProductGroup>41 </ProductGroup>\r\n      <AccountType>TD</AccountType>\r\n      <StdDesc>Time Deposit             </StdDesc>\r\n      <AltDesc>Time Deposit             </AltDesc>\r\n      <Currency>000 </Currency>\r\n      <Conversion>000000000000</Conversion>\r\n    </Table1>\r\n    <Table1 diffgr:id=\"Table13\" msdata:rowOrder=\"2\">\r\n      <ProductGroup>51 </ProductGroup>\r\n      <AccountType>SA</AccountType>\r\n      <StdDesc>Regular SA w/Interest    </StdDesc>\r\n      <AltDesc>Regular SA w/Interest    </AltDesc>\r\n      <Currency>000 </Currency>\r\n      <Conversion>000000000000</Conversion>\r\n    </Table1>\r\n    <Table1 diffgr:id=\"Table14\" msdata:rowOrder=\"3\">\r\n      <ProductGroup>52 </ProductGroup>\r\n      <AccountType>SA</AccountType>\r\n      <StdDesc>Regular SA w/o interest  </StdDesc>\r\n      <AltDesc>Regular SA w/o interest  </AltDesc>\r\n      <Currency>000 </Currency>\r\n      <Conversion>000000000000</Conversion>\r\n    </Table1>\r\n    <Table1 diffgr:id=\"Table15\" msdata:rowOrder=\"4\">\r\n      <ProductGroup>53 </ProductGroup>\r\n      <AccountType>SA</AccountType>\r\n      <StdDesc>SA w/o interest - Pension</StdDesc>\r\n      <AltDesc>SA w/o interest - Pension</AltDesc>\r\n      <Currency>000 </Currency>\r\n      <Conversion>000000000000</Conversion>\r\n    </Table1>\r\n    <Table1 diffgr:id=\"Table16\" msdata:rowOrder=\"5\">\r\n      <ProductGroup>54 </ProductGroup>\r\n      <AccountType>SA</AccountType>\r\n      <StdDesc>SA w/o interest Payroll  </StdDesc>\r\n      <AltDesc>SA w/o interest Payroll  </AltDesc>\r\n      <Currency>000 </Currency>\r\n      <Conversion>000000000000</Conversion>\r\n    </Table1>\r\n  </tmpDataSet>\r\n</diffgr:diffgram>"}

Expecting Return:

"[{\"ProductGroup\":\"10 \",\"AccountType\":\"CA\",\"StdDesc\":\"Current Account          \",\"AltDesc\":\"Current Account          \",\"Currency\":\"    \",\"Conversion\":\"            \"},{\"ProductGroup\":\"20 \",\"AccountType\":\"SA\",\"StdDesc\":\"Savings Account          \",\"AltDesc\":\"Savings Account          \",\"Currency\":\"    \",\"Conversion\":\"            \"},{\"ProductGroup\":\"30 \",\"AccountType\":\"SS\",\"StdDesc\":\"Power Savings Deposit    \",\"AltDesc\":\"Power Savings Deposit    \",\"Currency\":\"    \",\"Conversion\":\"            \"},{\"ProductGroup\":\"40 \",\"AccountType\":\"TD\",\"StdDesc\":\"Regular TD               \",\"AltDesc\":\"Regular TD               \",\"Currency\":\"    \",\"Conversion\":\"            \"},{\"ProductGroup\":\"50 \",\"AccountType\":\"MC\",\"StdDesc\":\"Contractual Savings      \",\"AltDesc\":\"Contractual Savings      \",\"Currency\":\"    \",\"Conversion\":\"            \"}]"

This convert my DataTable to JSON

    [HttpPost]
    public string Generic([FromBody]Parameters parameters)
    {
        return JsonConvert.SerializeObject(SQLHelper.ExecuteTable(connstring.casa, parameters.sqlstr));
    }

SQLHelper.ExecuteTable(Connection String, SQL String) return as DataTable

0

There are 0 best solutions below