Member 13041902 Ответов: 1

Попытка вернуть пользователей из базы данных в текстовое поле


Это мой основной класс
public MainPage()
       {
           this.InitializeComponent();


       }

       private async void Button_Click(object sender, RoutedEventArgs e)
       {
           UsersObject myGetRequest = new UsersObject();
           myGetRequest.users = await GetRequest();

           //to iterate all users you got do this:
           foreach (var item in myGetRequest.users)
           {
               //do something


           }
           ResultTextBlock.Text = myGetRequest.users.ToString();


       }


       public static async Task<List<UserObject>> GetRequest()
       {
           Uri geturi = new Uri("url"); //replace your url
           System.Net.Http.HttpClient client = new System.Net.Http.HttpClient();
           System.Net.Http.HttpResponseMessage responseGet = await client.GetAsync(geturi);
           string response = await responseGet.Content.ReadAsStringAsync();
           //return response;

           var json = await responseGet.Content.ReadAsStringAsync();
           var result = JsonConvert.DeserializeObject<List<UserObject>>(json);

           return result;
       }


   }


И у меня также есть этот класс userobject
public class UsersObject { public List<UserObject> users = new List<UserObject>(); }
  public class UserObject
  {
      public string username { get; set; }
      //public string password { get; set; }
      //public int Id { get; set; }
      //public object userscol { get; set; }
      //public string __href { get; set; }
  }


Я пытаюсь вернуть пользователей в базу данных, но вместо этого я получаю UserObject, передаваемый при запуске моего кода. Кто-нибудь может подсказать, что мне нужно изменить здесь, чтобы получить списки пользователей из базы данных?

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

Это моя лучшая попытка сделать это до сих пор и до этого я мог бы получить данные переданные обратно в виде JSON но он показывает пароли пользователей которые я не хочу я просто хочу имена пользователей из базы данных MySQL

NotPolitcallyCorrect

Если вы пытаетесь получить данные из базы данных.... где этот код?

Richard MacCutchan

Это похоже на работу по копированию и вставке. Вы должны заполнить весь недостающий код.

Bryian Tan

все логины от пользователей? или один конкретный?

Member 13041902

Да это не копирование и вставка я усердно работал над этим некоторое время и несколько раз просил о помощи чтобы добраться до того места где я нахожусь с этим кодом

Member 13041902

Все имена пользователей - это то, что я бы искал

Member 13041902

Его данные JSON возвращаются не CSV

1 Ответов

Рейтинг:
1

Bryian Tan

Основываясь на том, что вы предоставили, предполагая, что все остальное работает, этого кода должно быть достаточно, чтобы получить имя пользователя через запятую

ResultTextBlock.Text = string.Join(",", myGetRequest.users.Select(p => p.username));


Member 13041902

Извините это данные JSON с которыми я работаю а не CSV

Bryian Tan

Как насчёт

var result = myGetRequest.users.Select(p => p.username).ToList()

        System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
        string jsonResult = serializer.Serialize(result);

        ResultTextBlock.Text = jsonResult;

Member 13041902

Ладно, попробую, когда представится возможность. Кроме того, я забыл тег UWP на этом посту просто потому, что там больше не было путаницы.

Member 13041902

Я предполагаю, что это будет вместо результата var, который у меня уже есть? Так Могу ли я спросить, зачем вам его сериализовывать? Разве он не должен быть десериализован из JSON, чтобы отобразить его в текстовом формате?

Bryian Tan

Не знаю, что ты пытаешься сделать. Вы не предоставили достаточно информации. Я предположил, что ваш следующий вопрос был о том, как читать массив JSON на стороне клиента? См. здесь пример Массив Loop JSON[^]

Member 13041902

Да потому, что я хочу сделать, это прочитать данные JSON с URL-адреса и затем десериализовать его и поместить его в текстовое поле, но я только хочу, чтобы отобразить имя пользователя, часть данных, потому что данные JSON и возвращает пароли которые могли бы привести проблемам безопасности, так что я просто хочу, чтобы имя пользователя будет отображаться в TextBox в C#

Bryian Tan

вы пробовали код? Я не понимаю, почему он вернет пароль.

Member 13041902

Он передал обратно все данные JSON из URL-адреса, который содержит пароль

Bryian Tan

Вы хотите снова опубликовать свой код? Я не вижу, как код должен возвращать столбец пароля, в то время как он кодируется для получения только столбца имени пользователя

Member 13041902

Итак, мой UserObject. cs:

пространство имен HttpDemo
{
UsersObject открытый класс { общественная список<userobject> пользователи = новый список<userobject&ГТ;(); }
публичный класс UserObject
{
общественного строка имя { получить; набор; }
//public string password { get; set; }
//public int Id { get; set; }
//public object userscol { get; set; }
//public string __href { get; set; }
}
}

и моя главная страница.xaml. cs:

пространство имен HttpDemo
{
/// & lt;резюме>
/// Пустая страница, которая может использоваться сама по себе или перемещаться внутри фрейма.
///
public sealed partial class MainPage: страница
{
публичная Главная страница()
{
этот.метод InitializeComponent();


}

private async void Button_Click(отправитель объекта, RoutedEventArgs e)
{
UsersObject myGetRequest = новый UsersObject();
myGetRequest. users = await GetRequest();

//чтобы перебрать всех пользователей, которые у вас есть, сделайте это:
по каждому элементу (ВАР продукт в myGetRequest.пользователи)
{
//сделать нечто


}
ResultTextBlock.Текст = myGetRequest.пользователей.Метод toString();


}

// public async void POSTreq()
//{
// Uri requestUri = новый Uri("http://13.65.27.59/db/GroupDBTest/users.json"); / / замените свой Url-адрес
// dynamic dynamicJson = новый ExpandoObject();
// dynamicJson. username = "имя".Метод toString();
// dynamicJson. password = " 200";
// строки JSON = "";
// json = Newtonsoft. Json.JsonConvert. SerializeObject(dynamicJson);
// var objClint = new System. Net. Http.HttpClient();
// System.Net.Http.HttpResponseMessage respon = await objClint.PostAsync(requestUri, новый StringContent(JSON,в системе.Текст.Кодирование.UTF8, " application/json"));
// строки responJsonText = ждут ответственности.Содержание.ReadAsStringAsync();
//}
задача публичных статических асинхронных&ЛТ;список<userobject&ГТ;&ГТ; GetRequest()
{
Uri geturi = новый Uri("http://13.65.27.59/db/GroupDBTest/users.json"); / / замените свой url-адрес
Системы.Нет.Протоколу HTTP.Клиент с помощью HttpClient = новая система.Нет.Протоколу HTTP.С помощью HttpClient();
System.Net.Http.HttpResponseMessage responseGet = ожидание клиента.GetAsync(geturi);
строка ответ = ждут responseGet.Содержание.ReadAsStringAsync();
// обратный ответ;

var json = ожидание ответа.Содержание.ReadAsStringAsync();
var result = JsonConvert.DeserializeObject< List & lt;userobject>> (json);

возвращаемый результат;
}


}
}

Но когда я пробую ваш код, некоторые вещи недоступны в UWP, например Web in the line: System. Web. Script.Сериализация.Класс javascriptserializer сериализатор = новый система.Веб.Сценарий.Сериализация.Класс javascriptserializer();

Я вообще не уверен, как ваш код вписывается в мой

Bryian Tan

Попробовать это.
//UserObject.cs

public class UsersObject
{
    public string username { get; set; }
}

// * * * * * * Mainpage. xaml. cs: *******
public MainWindow()
    {
        InitializeComponent();
    }

    public static async Task<List<UsersObject>> GetRequest()
    {
        Uri geturi = new Uri("http://13.65.27.59/db/GroupDBTest/users.json"); //replace your url
        System.Net.Http.HttpClient client = new System.Net.Http.HttpClient();
        System.Net.Http.HttpResponseMessage responseGet = await client.GetAsync(geturi);
        string response = await responseGet.Content.ReadAsStringAsync();
        //return response;

        var json = await responseGet.Content.ReadAsStringAsync();
        var result = JsonConvert.DeserializeObject<List<UsersObject>>(json);

        return result;
    }

private async void Button_Click(object sender, RoutedEventArgs e)
    {
      //  UsersObject myGetRequest = new UsersObject();
        var x = await GetRequest();
        // myGetRequest.users = await GetRequest();
    }
}