Как вернуть результат JSON из службы WCF
Я создал сервис WCF, мне нужно вернуть результат JSON, но я вернул список<string>. Пожалуйста, помогите мне решить эту проблему, чтобы вернуть результат JSON.
//IService.cs
namespace GenerateService { [ServiceContract] public interface IService1 { [OperationContract] List<string[]> AutoGenerate(string Content, int count); } }
//Service1.cs
public class Service1 : IService1 { public string datatypeval; public List<string[]> AutoGenerate(string Content, int count) { DataSet alRes = new DataSet(); //string FieldValue; List<string[]> Getdetails = new List<string[]>(); string sval; int s = 1; string[] Columns = Content.Split(',').Select(sValue => sValue.Trim()).ToArray(); foreach (var item in Columns) { datatypeval += "'" + item + "'" + ","; } string FieldNames1 = "SELECT SUBSTRING((SELECT ',' + CAST(FId AS VARCHAR) FROM tbl_fieldname where DataTypeName in(" + datatypeval.Remove(datatypeval.Length - 1) + ")FOR XML PATH('')), 2,10000) AS FID"; alRes = DAL.DBL.returnDataset(FieldNames1); string FieldNames = alRes.Tables[0].Rows[0]["FID"].ToString(); string[] FieldID = FieldNames.Split(',').Select(sValue => sValue.Trim()).ToArray(); for (int e = 0; e < Columns.Count(); e++) { //FieldValue = ""; string qryGetFieldNames = "SELECT TOP (" + count + ")TD1.FID,TD1.Value,TFN.DataTypeName FROM tbl_Data1 TD1 INNER JOIN tbl_FieldName TFN ON TD1.FID=TFN.FID WHERE TD1.FId in (" + FieldID[e] + ") ORDER BY NEWID()"; alRes = DAL.DBL.returnDataset(qryGetFieldNames); for (int i = 0; i < alRes.Tables[0].Rows.Count; i++) { // FieldValue += Columns[e] + "::" + alRes.Tables[0].Rows[i]["Value"].ToString() + "~"; if (FieldID[e] == alRes.Tables[0].Rows[i]["FID"].ToString()) { string[] Checkvalue = new string[FieldID.Length]; if (e != 0) { Checkvalue = Getdetails[i]; } Checkvalue[e] = alRes.Tables[0].Rows[i]["Value"].ToString(); if (e == 0) { Getdetails.Add(Checkvalue); } else { Getdetails[i] = Checkvalue; } } } s++; } return Getdetails; } }
Что я уже пробовал:
public class Service1 : IService1 { public string datatypeval; public List<string[]> AutoGenerate(string Content, int count) { DataSet alRes = new DataSet(); //string FieldValue; List<string[]> Getdetails = new List<string[]>(); string sval; int s = 1; string[] Columns = Content.Split(',').Select(sValue => sValue.Trim()).ToArray(); foreach (var item in Columns) { datatypeval += "'" + item + "'" + ","; } string FieldNames1 = "SELECT SUBSTRING((SELECT ',' + CAST(FId AS VARCHAR) FROM tbl_fieldname where DataTypeName in(" + datatypeval.Remove(datatypeval.Length - 1) + ")FOR XML PATH('')), 2,10000) AS FID"; alRes = DAL.DBL.returnDataset(FieldNames1); string FieldNames = alRes.Tables[0].Rows[0]["FID"].ToString(); string[] FieldID = FieldNames.Split(',').Select(sValue => sValue.Trim()).ToArray(); for (int e = 0; e < Columns.Count(); e++) { //FieldValue = ""; string qryGetFieldNames = "SELECT TOP (" + count + ")TD1.FID,TD1.Value,TFN.DataTypeName FROM tbl_Data1 TD1 INNER JOIN tbl_FieldName TFN ON TD1.FID=TFN.FID WHERE TD1.FId in (" + FieldID[e] + ") ORDER BY NEWID()"; alRes = DAL.DBL.returnDataset(qryGetFieldNames); for (int i = 0; i < alRes.Tables[0].Rows.Count; i++) { // FieldValue += Columns[e] + "::" + alRes.Tables[0].Rows[i]["Value"].ToString() + "~"; if (FieldID[e] == alRes.Tables[0].Rows[i]["FID"].ToString()) { string[] Checkvalue = new string[FieldID.Length]; if (e != 0) { Checkvalue = Getdetails[i]; } Checkvalue[e] = alRes.Tables[0].Rows[i]["Value"].ToString(); if (e == 0) { Getdetails.Add(Checkvalue); } else { Getdetails[i] = Checkvalue; } } } s++; } return Getdetails; } }