Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
1 / 1 / 1
Регистрация: 05.09.2015
Сообщений: 19
1

Парсинг JSON: поиск совпадений

15.09.2015, 11:34. Показов 1352. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!
Имеется JSON file данной структуры и либы json.org:
JSON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
    "testusers": [
        {
            "phone": 223334455,
            "surname": "fofofoff",
            "name": "sosss",
            "adress": "someadress2",
            "userId": "1F7",
            "age": 24
        },
        {
            "phone": 112223344,
            "surname": "gogogo",
            "name": "mememe",
            "adress": "someadress3",
            "userId": "560",
            "age": 24
        }
    ]
}
Нужно пройтись по массиву и найти совпадение одновременно двух параметров в одном объекте например name && phone должны быть равно fofofoff && 223334455 соответственно тогда true

Пробую сделать так:

Java
1
2
3
4
5
6
7
8
9
10
11
12
String fileContent = InputWorker.readFile(new File("Test/Testusers.json"));
JSONObject ob1 = new JSONObject(fileContent);
JSONArray arr = ob1.getJSONArray("testusers");
 
  for (int i = 0; i < arr.length(); i++) {
      JSONObject obj = arr.getJSONObject(i);
 
      String userName = obj.getString("name");
      String phoneNumber = String.valueOf(obj.getInt("phone"));
      System.out.println("OK " + userName + " - " + phoneNumber);
}
}
такое, конечно, дает мне просто все имена и телефоны в джсон структуре. метод equals добавить сходу не удалось, почему то таком варианте мне искало только по первому объекту. ( name/phone - получаю из инпута тут не следует заострять внимание)
Java
1
2
3
4
5
6
7
8
       if(userName.equals(name) && phoneNumber.equals(String.valueOf(phone))){
 
                        System.out.println("OK" + userName + " - " + phoneNumber);
                    } else
                        System.out.println("ERROR " + "- what I found" +  userName +" "+ " what you inputed" + name + " - " + phoneNumber+ " " + phone);
                        break;
 
                }
буду рад любой помощи
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.09.2015, 11:34
Ответы с готовыми решениями:

JSON парсинг
Я столкнулся с такой проблемой. Подскажите пожайлуста, что не так? И как исправить? FileReader...

Парсинг JSON
Здравствуйте. У меня есть такой json: {&quot;content&quot;:, &quot;number&quot;:6,&quot;numbertext&quot;:&quot;text&quot;} К массиву...

Поиск совпадений имени и фамилии
Здравствуйте,помогите,пожалуйста с задаче: Сведения о каждом ученике школы состоят из его имени,...

Парсинг JSON строки
Доброго времени суток! :) Написал &quot;парсер&quot; JSON для своих нужд. :D Что парсил (пытался...

2
Эксперт Java
4092 / 3826 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
15.09.2015, 12:05 2
зачем у вас там стоит break?
Остальное вроде всё правильно. Я бы порекомедовал попробовать пройтись пошагово в отладчике - сразу куча вопросов отпадёт.
0
1 / 1 / 1
Регистрация: 05.09.2015
Сообщений: 19
15.09.2015, 12:09  [ТС] 3
Цитата Сообщение от turbanoff Посмотреть сообщение
Остальное вроде всё правильно. Я бы порекомедовал попробовать пройтись пошагово в отладчике - сразу куча вопросов отпадёт.
забыл добавить, что делает метод readLine
JSON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
public static String readFile(File file) {
    if (!file.exists()) {
        return null;
    }
    String fileContent = "";
    FileInputStream fileInputStream = null;
    BufferedReader bufferedReader = null;
    InputStreamReader inputStreamReader = null;
    try {
        fileInputStream = new FileInputStream(file);
        inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");
        bufferedReader = new BufferedReader(inputStreamReader);
        String line;
        while ((line = bufferedReader.readLine()) != null) {
            fileContent += line;
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (bufferedReader != null) {
            try {
                bufferedReader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        if (inputStreamReader != null) {
            try {
                inputStreamReader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        if (fileInputStream != null) {
            try {
                inputStreamReader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    return fileContent;
}
0
15.09.2015, 12:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.09.2015, 12:09
Помогаю со студенческими работами здесь

Парсинг JSON с помошью Gson
Здравствуйте у меня такое задание: необходимо получить ArrayList из JSON файла, коотрый имеет...

Парсинг не совсем валидного JSON
Вот так получаю сам JSON: public String readFile() throws FileNotFoundException, IOException...

Парсинг JSON в JSON Linked Data с использованием Hydra Java
Есть веб страница, на которой пользователь заполняет поля, жмет на кнопку и затем данные...

Парсинг JSON
Собственно вопрос вот в чем: как можно char-символы из этого JSON преобразовать в текст (чтобы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru