создать JSON строку для отправки запроса

Sanekk

Client
Регистрация
24.06.2016
Сообщения
993
Благодарностей
389
Баллы
63
Добрый день.
Выполнить на С#.
На входе имеем массив = {"offer_id":"product_id"} кол-во может быть разное от 1 до 1000 значений. Поэтому нужно предусмотреть в цикле условие выхода из цикла по достижению 100 итераций.
Нужно сформировать JSON вот такой:
C#:
{
  "filter": {
    "offer_id": [
      "356792"
    ],
    "product_id": [
      "243686911"
    ],
    "visibility": "ALL"
  },
  "last_id": "",
  "limit": 100
}
offer_id и product_id должны подставляться из переменной.
Стоимость и сроки в ЛС.
 

n0n3mi1y

Client
Регистрация
08.03.2017
Сообщения
1 160
Благодарностей
512
Баллы
113
Добрый день. Пишите в телеграмм.
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 769
Благодарностей
2 422
Баллы
113
Добрый день.
Выполнить на С#.
На входе имеем массив = {"offer_id":"product_id"} кол-во может быть разное от 1 до 1000 значений. Поэтому нужно предусмотреть в цикле условие выхода из цикла по достижению 100 итераций.
Нужно сформировать JSON вот такой:
C#:
{
  "filter": {
    "offer_id": [
      "356792"
    ],
    "product_id": [
      "243686911"
    ],
    "visibility": "ALL"
  },
  "last_id": "",
  "limit": 100
}
offer_id и product_id должны подставляться из переменной.
Стоимость и сроки в ЛС.
C#:
//[{"offer_id_1":"product_id_1"},{"offer_id_2":"product_id_2"},{"offer_id_3":"product_id_3"}]

// Формирую демо данные
var items = new List<object>();
for(int i=0;i<5;++i) {
    var item = new Dictionary<string,string>();
    string offer_id = string.Format("offer_id_{0}",i);
    string product_id = string.Format("product_id_{0}",i);   
    item[offer_id] = product_id;
    items.Add(item);
}

// Входной массив
string array_json = Global.ZennoLab.Json.JsonConvert.SerializeObject(items, Global.ZennoLab.Json.Formatting.None);
project.SendInfoToLog(array_json);

int count = 100; // сколько елементов брать
var items_array = Global.ZennoLab.Json.JsonConvert.DeserializeObject<List<Dictionary<string,string>>>(array_json);
if(items_array.Count > count) items_array = items_array.Take(count).ToList(); // Первых 100

var filter = new Dictionary<string, object>();
filter["offer_id"] = items_array.Select(x=>x.Keys.First());
filter["product_id"] = items_array.Select(x=>x.Values.First());
filter["visibility"] = "ALL";

var root = new Dictionary<string, object>();
root["filter"] = filter;
root["last_id"] = string.Empty;
root["limit"] = 100;

return Global.ZennoLab.Json.JsonConvert.SerializeObject(root, Global.ZennoLab.Json.Formatting.Indented);

JSON:
{
  "filter": {
    "offer_id": [
      "offer_id_0",
      "offer_id_1",
      "offer_id_2",
      "offer_id_3",
      "offer_id_4"
    ],
    "product_id": [
      "product_id_0",
      "product_id_1",
      "product_id_2",
      "product_id_3",
      "product_id_4"
    ],
    "visibility": "ALL"
  },
  "last_id": "",
  "limit": 100
}
 

Sanekk

Client
Регистрация
24.06.2016
Сообщения
993
Благодарностей
389
Баллы
63
C#:
//[{"offer_id_1":"product_id_1"},{"offer_id_2":"product_id_2"},{"offer_id_3":"product_id_3"}]

// Формирую демо данные
var items = new List<object>();
for(int i=0;i<5;++i) {
    var item = new Dictionary<string,string>();
    string offer_id = string.Format("offer_id_{0}",i);
    string product_id = string.Format("product_id_{0}",i);  
    item[offer_id] = product_id;
    items.Add(item);
}

// Входной массив
string array_json = Global.ZennoLab.Json.JsonConvert.SerializeObject(items, Global.ZennoLab.Json.Formatting.None);
project.SendInfoToLog(array_json);

int count = 100; // сколько елементов брать
var items_array = Global.ZennoLab.Json.JsonConvert.DeserializeObject<List<Dictionary<string,string>>>(array_json);
if(items_array.Count > count) items_array = items_array.Take(count).ToList(); // Первых 100

var filter = new Dictionary<string, object>();
filter["offer_id"] = items_array.Select(x=>x.Keys.First());
filter["product_id"] = items_array.Select(x=>x.Values.First());
filter["visibility"] = "ALL";

var root = new Dictionary<string, object>();
root["filter"] = filter;
root["last_id"] = string.Empty;
root["limit"] = 100;

return Global.ZennoLab.Json.JsonConvert.SerializeObject(root, Global.ZennoLab.Json.Formatting.Indented);

JSON:
{
  "filter": {
    "offer_id": [
      "offer_id_0",
      "offer_id_1",
      "offer_id_2",
      "offer_id_3",
      "offer_id_4"
    ],
    "product_id": [
      "product_id_0",
      "product_id_1",
      "product_id_2",
      "product_id_3",
      "product_id_4"
    ],
    "visibility": "ALL"
  },
  "last_id": "",
  "limit": 100
}
Йосифович - красавчик спасибо!
 

Sanekk

Client
Регистрация
24.06.2016
Сообщения
993
Благодарностей
389
Баллы
63
del
 
Последнее редактирование:

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)