Vikas Hire Ответов: 2

Как преобразовать несколько объектов данных в строку JSON с помощью C#?


привет,
Я хочу получить преобразование нескольких объектов данных в строку JSON с помощью C#.
Нравится.. 1-у меня есть таблица данных, которую я получаю из базы данных с помощью процедуры хранения
и 2-у меня есть строка ("userType:1"), похожая на эту.
Я хочу вернуть оба объекта данных (таблицу и строку) в моей строке json. Как я могу это сделать, есть идеи...?

вот мой код.
[WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public string getLogin(string id, string password)
    {
        string json = "";
        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString);
        try
        {
            con.Open();

            DataTable tblUserInfo = new DataTable();
            SqlDataAdapter da;
            da = new SqlDataAdapter("SP1_login ", con);
            da.SelectCommand.CommandType = CommandType.StoredProcedure;
            da.SelectCommand.Parameters.Add("@userId", SqlDbType.VarChar).Value = id;
            da.SelectCommand.Parameters.Add("@password", SqlDbType.VarChar).Value = password;
            da.SelectCommand.Parameters.Add("@retValue", System.Data.SqlDbType.Int).Direction = System.Data.ParameterDirection.ReturnValue;
            da.Fill(tblUserInfo);
            if (tblUserInfo.Rows.Count != 0)
            {   
                // Convert DataTable to JSON using JSON.Net DLL.         
                json = DataTableToJSONWithJSONNet(tblUserInfo);
            }
            else
            {
                string result = "2";
                json = new JavaScriptSerializer().Serialize(result);              
            }
        }
        catch (Exception ex)
        {
           
        }
        finally
        {
            con.Close();
        }
        return json;
    }

В приведенном выше коде строка JSON содержит только таблицу данных

Что я уже пробовал:

Я пытаюсь получить данные при входе пользователя в систему.
Я хочу вернуть JSON таким образом, чтобы я получил информация о пользователе входа в систему, содержащаяся в таблице и еще один объект Пользовательского например, локальный пользователь, администратор или любой другой.

На стороне клиента я хочу получить два объекта данных в строке JSON один из них Таблица данных и еще один такой Пользовательского

2 Ответов

Рейтинг:
2

Vikas Hire

Resp, John Simmons Your sol. n не подходит для моей проблемы, я уже преобразовал свою таблицу, используя третий вариант, который вы мне предлагаете.

Рейтинг:
13

virang_21

Если вы используете JSON.NET вы можете вызвать Merge для двух объектов JSON.

JObject obj1 = JObject.Parse(@"{
  'field1': 'value1',
  'field2': 'value2'
}");
JObject obj2 = JObject.Parse(@"{
  'field3': 'somevalue'
}");

obj1.Merge(obj2, new JsonMergeSettings { MergeArrayHandling = MergeArrayHandling.Concat });

string json = obj1.ToString();


Vikas Hire

Я думаю, что это была бы работа, но я получаю ошибку. Я уже получаю преобразование таблицы tblUserInfo в json, так что этот json не преобразуется в объект ison (см. мой код выше)