Я имею строку, которая может выглядеть следующим образом:Поиск строки в скобках
{
"acl_gent": {
"cluster": [],
"indices": [{
"names": ["am*"],
"privileges": ["read", "view_index_metadata"],
"query": "{\"match\": {\"ACL\": \"acl_gent\"}}"
}],
"run_as": []
},
"acl_luik": {
"cluster": [],
"indices": [{
"names": ["am*"],
"privileges": ["read", "view_index_metadata"],
"query": "{\"match\": {\"ACL\": \"acl_luik\"}}"
}],
"run_as": []
}
}
и я хотел бы разделить его на 2-х строк, содержащих 1 acl_gent и один conaining acl_luik
строка выше, может содержать более 2 списки доступа (и я НЕ знаю, что имя будет)
поэтому я овка d удаление первого и последнего bracketes:
input = input.Substring(1, input.Length - 2);
, но тогда я не могу понять, о том, как найти правильный закрывающую скобку для извлечения данных.
это было ближе всего я получил
private int closer(string input) {
var i = input.IndexOf('}');
Console.WriteLine(string.Format("[DEBUG] Checking: {0}", input.Substring(0, i).Contains('{')));
if (input.Substring(0, i).Contains('{')) {
return i + closer(input.Substring(i)) + 2;
}
return i;
}
Как насчет того, чтобы вы правильно разобрали его? (Я имею в виду, используя синтаксический анализатор JSON) – zerkms
Это JSON, и с ним следует обращаться с использованием встроенных функций C# для массивов JSON. – Samuel
Этот тип обозначений называется JSON. Я думаю, ваше ключевое слово. Поиск в google с помощью этого запроса: 'Как я могу разобрать строку JSON в C#'. Думаю, ты найдешь свой ответ. –