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

  • Автор темы Автор темы wizard
  • Дата начала Дата начала

wizard

Client
Регистрация
04.10.2011
Сообщения
1 056
Реакции
720
Баллы
113
Здравствуйте, помогите разложить данные из

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

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

раньше парсил все описным способом тут но теперь не могу понять как вытащить номера по очереди
 
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;
 
там вроде все внятно расписано
да внятно, но к сожалению там не описана ситуация когда у одного ключа - массив значений,
а проблема, у меня, именно в этом
 
ну это просто список, могу на питоне дать скрипт как его разложить))) но с зенкой боюсь его не совместить без костылей)
 
хорошо, а можно тогда из массива nomer_ab выбрать один номер (по регулярному выражению) и сохранить его в переменную зеннопостера ??
--------------
как бы задача найти самый подходящий номер , то есть сначала ищем beeline, если нет то MTS, если нет то любой
 
а что значит самый подходящий в вашем случае?
 
не спец по 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
 
Последнее редактирование:
var json = '{"anketa":{"id":"798613","nomer_ab":["380963333333","380962222222"]}}';
function JSONlist(jsonObj){
напоминаю, обьект JSON есть только в браузере.
 
напоминаю, обьект JSON есть только в браузере.

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

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

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

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

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

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