json в цикле через c# не сравнивает одинаковые строки

nik-n

Client
Регистрация
05.11.2016
Сообщения
242
Благодарностей
20
Баллы
18
уже всю голову сломал, наверняка что то элементарное не знаю или в упор не вижу.

прогоняю в цикле json массив, ну почему не на ходит совпадения с строкой SquareZU ??? должно вывести в лог текст "44067"
 

Вложения

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 261
Благодарностей
679
Баллы
113
уже всю голову сломал, наверняка что то элементарное не знаю или в упор не вижу.

прогоняю в цикле json массив, ну почему не на ходит совпадения с строкой SquareZU ??? должно вывести в лог текст "44067"
Версию бы понизить...глянул бы
 

nik-n

Client
Регистрация
05.11.2016
Сообщения
242
Благодарностей
20
Баллы
18

nik-n

Client
Регистрация
05.11.2016
Сообщения
242
Благодарностей
20
Баллы
18
тогда проще вот так )
116974


116975


текст в переменно cfg_characteristic:
SquareZU
CadastralNumber

c# код
C#:
int j_c = int.Parse(project.Json.characteristics.Count.ToString());
string [] ch_arr = project.Variables["cfg_characteristics"].Value.Split('\n');
string chrct = "";
string j_chrct = "";
for (int i=0; i < ch_arr.Length; i++){
    chrct = ch_arr[i];
    project.SendInfoToLog("1 \""+chrct+"\"");
    for(int ii=0; ii<j_c; ii++){
        if (project.Json.characteristics[ii].code.ToString() == chrct.ToString()) {
            project.SendInfoToLog("2 \""+project.Json.characteristics[ii].characteristicValue+"\"");
        }
    }
}
json массив во вложении
 

Вложения

K R

Client
Регистрация
14.01.2017
Сообщения
127
Благодарностей
127
Баллы
43
уже всю голову сломал, наверняка что то элементарное не знаю или в упор не вижу.

прогоняю в цикле json массив, ну почему не на ходит совпадения с строкой SquareZU ??? должно вывести в лог текст "44067"
Вот тут:
C#:
        if (project.Json.characteristics[ii].code.ToString() == chrct.ToString()) {
            project.SendInfoToLog("2 \""+project.Json.characteristics[ii].characteristicValue+"\"");
        }
удалите .ToString() (это лишнее) и добавьте к переменной chrct .Trim() чтобы получилось вот так:
C#:
        if (project.Json.characteristics[ii].code == chrct.Trim()) {
            project.SendInfoToLog("2 \""+project.Json.characteristics[ii].characteristicValue+"\"");
        }
Дело в том, что вы в качестве разделителя берёте \n, и в конце строки ещё остаётся висеть какой-нибудь \r, а у переменной из json такого нет, поэтому они отличаются.
 
  • Спасибо
Реакции: nik-n

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