Json -> C# -> Список

wizard

Client
Регистрация
04.10.2011
Сообщения
991
Благодарностей
608
Баллы
93
Здравствуйте, помогите разложить данные из

{"anketa":{"id":"798613","nomer_ab":["380963333333","380962222222"]}}
тут может быть 1 - 5 nomer_ab

надо бы все сложить в список, вот так:
nomer_ab#1|id
nomer_ab#2|id
nomer_ab#3|id

раньше парсил все описным способом тут но теперь не могу понять как вытащить номера по очереди
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
787
Баллы
113
C#:
string json = project.Variables["json"].Value;
var outlist = project.Lists["outlist"];
string nomer_ab = System.Text.RegularExpressions.Regex.Match(json, "(?<=\"id\":\"[^\"]+\",\")[^\"]+").Value;
List<string> numbs = System.Text.RegularExpressions.Regex.Matches(System.Text.RegularExpressions.Regex.Match(json, "(?<=\\[).*(?=])").Value, "\\d+").Cast<System.Text.RegularExpressions.Match>().Select(m=>m.Value.Replace("\"","")).ToList();
for(int i=0; i < numbs.Count; i++)
    outlist.Add(nomer_ab +"#"+(i+1).ToString()+"|"+numbs[i]);
return outlist.Count;
 

wizard

Client
Регистрация
04.10.2011
Сообщения
991
Благодарностей
608
Баллы
93

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
894
Баллы
113

wizard

Client
Регистрация
04.10.2011
Сообщения
991
Благодарностей
608
Баллы
93
там вроде все внятно расписано
да внятно, но к сожалению там не описана ситуация когда у одного ключа - массив значений,
а проблема, у меня, именно в этом
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
894
Баллы
113
ну это просто список, могу на питоне дать скрипт как его разложить))) но с зенкой боюсь его не совместить без костылей)
 

wizard

Client
Регистрация
04.10.2011
Сообщения
991
Благодарностей
608
Баллы
93
хорошо, а можно тогда из массива nomer_ab выбрать один номер (по регулярному выражению) и сохранить его в переменную зеннопостера ??
--------------
как бы задача найти самый подходящий номер , то есть сначала ищем beeline, если нет то MTS, если нет то любой
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
894
Баллы
113
а что значит самый подходящий в вашем случае?
 

7make

Client
Регистрация
25.06.2011
Сообщения
1 547
Благодарностей
1 310
Баллы
113

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 7make какие-либо сделки.

не спец по js если че, но воркает вроде)


JavaScript:
var json = '{"anketa":{"id":"798613","nomer_ab":["380963333333","380962222222"]}}';

function JSONlist(jsonObj){
    var items = JSON.parse(jsonObj);
    var result ='';
    for(i=0; i<items.anketa.nomer_ab.length; i++){
        result+=items.anketa.nomer_ab[i] + '|' + items.anketa.id +'\n';
    }
    return result;
}

return (JSONlist(json));

//return
//380963333333|798613
//380962222222|798613
 
Последнее редактирование:

wizard

Client
Регистрация
04.10.2011
Сообщения
991
Благодарностей
608
Баллы
93

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
787
Баллы
113
var json = '{"anketa":{"id":"798613","nomer_ab":["380963333333","380962222222"]}}';
function JSONlist(jsonObj){
напоминаю, обьект JSON есть только в браузере.
 

7make

Client
Регистрация
25.06.2011
Сообщения
1 547
Благодарностей
1 310
Баллы
113

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 7make какие-либо сделки.

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
787
Баллы
113
работает шаблон себе на запросах тихонечко а тут из-за того что нужно распарсить джейсон, нужно браузер подключать... как-то по-дилетански это выглядит....
 

7make

Client
Регистрация
25.06.2011
Сообщения
1 547
Благодарностей
1 310
Баллы
113

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 7make какие-либо сделки.

так смотря какой проект.
тс просил решение без уточнений, получил его.

если шаб на пост/гет ориентирован тогда делать на C# разбор.
или подрубать Json.NET, там в 2 строчки кода разобрать json можно.

можно еще nodejs забиндить.

можно либу заюзать https://cdnjs.com/libraries/json5
etc ...

хотя не факт что в браузере операция будет дорогой, DOM же не рендерим, просто на ядре браузера выполним.
сожрем не больше ресурсов, чем грузить в память либу json.NET и др альтернативные способы.
 
Последнее редактирование:

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