После того как я написал код который работал правильно, выводил серилизованную строку в формате json, я сохранил его и добавил комментарии. После повторной компиляции программы код уже не работает. На выходе получаю строку:
[{}]
Должна быть:
[
{
"operationName": "ChannelPage_SetSessionStatus",
"variables": {
"input": {
"sessionID": "fa073306f9e05288",
"availability": "ONLINE",
"activity": {
"type": "WATCHING",
"userID": "37402112",
"gameID": null
}
}
},
"extensions": {
"persistedQuery": {
"version": 1,
"sha256Hash": "8521e08af74c8cb5128e4bb99fa53b591391cb19492e65fb0489aeee2f96947f"
}
}
},
{
"operationName": "ChannelPage_StreamType_User",
"variables": {
"channelLogin": "shroud"
},
"extensions": {
"persistedQuery": {
"version": 1,
"sha256Hash": "43b152e4f17090ece0b50a5bc41e4690c7a6992ad3ed876d88bf7292be2d2cba"
}
}
}
]
Класс который серилизую:
public class TwitchStream
{
internal class TwitchSetSessionStatus
{
public string operationName = "ChannelPage_SetSessionStatus"; // название метода
internal class variables
{
internal class input
{
public string sessionID = "fa073306f9e05288"; // можно узнать из куков
public string availability = "ONLINE"; // статус аккаунта онлайн, отошёл или невидимка
internal class activity
{
public string type = "WATCHING"; // что делаешь
public int userID = 37402112; // id стримера которого смотришь
public string gameID = null; // пока что не увидел что б она хоть где-то не null была
}
}
}
internal class extensions
{
internal class persistedQuery
{
public int version = 1; // версия Query, я так понял
public string sha256Hash = "8521e08af74c8cb5128e4bb99fa53b591391cb19492e65fb0489aeee2f96947f"; // привязана к operationName
}
}
}
internal class TwitchStreamTypeUser
{
public string operationName = "ChannelPage_StreamType_User";
internal class variables
{
public string channelLogin = "shroud"; // не изменяется на сервере, лучше писать правильное значение
}
internal class extensions
{
internal class persistedQuery
{
public int version = 1; // версия Query, я так понял
public string sha256Hash = "43b152e4f17090ece0b50a5bc41e4690c7a6992ad3ed876d88bf7292be2d2cba"; // привязана к operationName
}
}
}
}
Теперь класс выглядит так:
public class TwitchStreams
{
public TwitchSetSessionStatus twitchSetSessionStatus = new TwitchSetSessionStatus();
public TwitchStreamTypeUser twitchStreamTypeUser = new TwitchStreamTypeUser();
public class TwitchSetSessionStatus
{
public string operationName = "ChannelPage_SetSessionStatus"; // название метода
public Variables variables = new Variables();
public Extensions extensions = new Extensions();
public class Variables
{
public Input input = new Input();
public class Input
{
public string sessionID = "fa073306f9e05288"; // можно узнать из куков
public string availability = "ONLINE"; // статус аккаунта онлайн, отошёл или невидимка
public Activity activity = new Activity();
public class Activity
{
public string type = "WATCHING"; // что делаешь
public int userID = 37402112; // id стримера которого смотришь
public string gameID = null; // пока что не увидел что б она хоть где-то не null была
}
}
}
public class Extensions
{
public PersistedQuery persistedQuery = new PersistedQuery();
public class PersistedQuery
{
public int version = 1; // версия Query, я так понял
public string sha256Hash = "8521e08af74c8cb5128e4bb99fa53b591391cb19492e65fb0489aeee2f96947f"; // привязана к operationName
}
}
}
public class TwitchStreamTypeUser
{
public string operationName = "ChannelPage_StreamType_User";
public Variables variables = new Variables();
public Extensions extensions = new Extensions();
public class Variables
{
public string channelLogin = "shroud"; // не изменяется на сервере, лучше писать правильное значение
}
public class Extensions
{
public PersistedQuery persistedQuery = new PersistedQuery();
public class PersistedQuery
{
public int version = 1; // версия Query, я так понял
public string sha256Hash = "43b152e4f17090ece0b50a5bc41e4690c7a6992ad3ed876d88bf7292be2d2cba"; // привязана к operationName
}
}
}
}
И Json так:
[
{
"twitchSetSessionStatus": {
"operationName": "ChannelPage_SetSessionStatus",
"variables": {
"input": {
"sessionID": "fa073306f9e05288",
"availability": "ONLINE",
"activity": {
"type": "121",
"userID": 37402112,
"gameID": null
}
}
},
"extensions": {
"persistedQuery": {
"version": 1,
"sha256Hash": "8521e08af74c8cb5128e4bb99fa53b591391cb19492e65fb0489aeee2f96947f"
}
}
},
"twitchStreamTypeUser": {
"operationName": "ChannelPage_StreamType_User",
"variables": {
"channelLogin": "shroud"
},
"extensions": {
"persistedQuery": {
"version": 1,
"sha256Hash": "43b152e4f17090ece0b50a5bc41e4690c7a6992ad3ed876d88bf7292be2d2cba"
}
}
}
}
]
Как мне убрать название переменных на 3-ий и 23-ий строке?
Еще раз. Не в значениях, которые Вы добавили в код вопроса, дело.
Давайте разберемся. Возьмем класс TwitchStreamTypeUser
. У объекта этого типа есть поле operationName
, и больше ничего.
internal class TwitchStreamTypeUser
{
public string operationName = "ChannelPage_StreamType_User";
internal class variables
{
public string channelLogin = "shroud"; // не изменяется на сервере, лучше писать правильное значение
}
internal class extensions
{
internal class persistedQuery
{
public int version = 1; // версия Query, я так понял
public string sha256Hash = "43b152e4f17090ece0b50a5bc41e4690c7a6992ad3ed876d88bf7292be2d2cba"; // привязана к operationName
}
}
}
Да, внутри него есть два другие типа/класса, но полей/свойств такого типа у TwitchStreamTypeUser
нет.
Измените класс TwitchStreamTypeUser
:
internal class TwitchStreamTypeUser
{
public string operationName = "ChannelPage_StreamType_User";
public variables variables = new variables();
public extensions extensions = new extensions();
internal class variables
{
public string channelLogin = "shroud"; // не изменяется на сервере, лучше писать правильное значение
}
internal class extensions
{
public persistedQuery persistedQuery = new persistedQuery();
internal class persistedQuery
{
public int version = 1; // версия Query, я так понял
public string sha256Hash = "43b152e4f17090ece0b50a5bc41e4690c7a6992ad3ed876d88bf7292be2d2cba"; // привязана к operationName
}
}
}
И аналогично, остальные классы.
Как мне убрать название переменных на 3-ий и 23-ий строке?
Мы идем вперед семимильными шагами ).
Кроме названий придется убрать и лишние фигурные скобки.
Поместите эти два объекта в массив object[]
или список List<object>
и сериализуйте этот контейнер.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Написал регистрацию пользователей на сайте, но при нажатии на кнопку зарегистрироваться, появляется ошибка "Ошибка при отправлении письма...
Как заменить images/14172/ на img/01-02-2019/
Написал регистрацию и активацию почты пользователей на сайтеНа почту приходит письмо с ссылкой, по который нужно перейти, чтобы активировать...