Приветствуем вас на форуме проекта WoW Circle. Если вы читаете это, значит не зарегистрировались у нас. Для того, чтобы получить доступ к расширенным возможностям нашего форума нажмите сюда и пройди регистрацию, которая не займет у вас много времени. После регистрации будут доступны новые, более расширенные, возможности.
JAVA vs PHP. Работа с JSON

Упомянутые в теме пользователи:

Показано с 1 по 1 из 1
  1. #1
    Старожил Аватар для Punk_pw
    Регистрация
    04.11.2014
    Сообщений
    97
    Поблагодарил(а)
    97
    Получено благодарностей: 35 (сообщений: 14).
    Репутация: 35

    Lightbulb JAVA vs PHP. Работа с JSON

    Сообсна...

    Есть 2 json-файла. Необходимо преобразовать их в массивы, сравнить некоторые параметры в обоих. Если параметры совпадают - копируем еще один параметр из 2-ого массива в первый. По окончанию проверки преобразовываем 1-ый массив в json-формат и сохраняем его в 3-ий файл.

    Нужно сделать это на Java, но в нем я далеко не бум-бум. Подскажите с чего начать, куда что и как. Как именно загнать json в массив или коллекцию?

    P.S. либо можете указать на ошибки в рабочем (!) PHP коде. проблема в существующем коде: в обоих json'ах по 50к элементов features[$i]. Т.е. если задавать оба цикла до 50к - заканчивается память. Получается обработать только по 5-8к элементов. На PHP выполнял в OpenServer. set_time_limit(0) и разгон памяти самого сервера не решает проблему, сообсна поэтому и пытаюсь реализовать задачу на Java.

    Рабочий PHP код:
    PHP код:
    $d1 file_get_contents('1.geojson');
    $j1 json_decode($d1);
    $d2 file_get_contents('2.geojson');
    $j2 json_decode($d2);



    for (
    $i=0$i<5000$i++)
    {
        for (
    $k=0$k<5000$k++)
        {        
            if (
    $j1->features[$i]->properties->CITY == $j2->features[$k]->properties->CITY)
            {
                if (
    $j1->features[$i]->properties->STREET == $j2->features[$k]->properties->STREET)
                {
                    if (
    $j1->features[$i]->properties->HOUSE_N == $j2->features[$k]->properties->HOUSE_N)
                    {
                        
    $j1->features[$i]->properties->Count $j2->features[$k]->properties->Count;
                        
    $i++;
                        
    $k=0;                                                                            
                    }
                }
            }
        }
    }


    $r json_encode($j1);
    file_put_contents('result.geojson'$r); 
    Кусок json'а:
    Код:
    {
    "type": "FeatureCollection",
    "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
                                                                                    
    "features": [
    { "type": "Feature", "properties": { "ObjectName": "ОТДЕЛЬНЫЕ СТРОЕН", "LayerName": "houses", "ObjectCode": "44200000", "HOUSE_N": "21", "STREET": "Киреева", "KORPUS": null, "TYP_COD": 19.0, "COUNTRY": "Беларусь", "STATE": "Минская область", "CITY": "Минск", "ST_CODE": 107.0, "NAME": "21", "Count": null }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 27.905462657, 53.878544619, 0.0 ], [ 27.905491096, 53.878692497, 0.0 ], [ 27.906063916, 53.878654036, 0.0 ], [ 27.90608928, 53.878785915, 0.0 ], [ 27.906138187, 53.878782631, 0.0 ], [ 27.906160055, 53.87889633, 0.0 ], [ 27.906403004, 53.878880017, 0.0 ], [ 27.906363983, 53.878677141, 0.0 ], [ 27.906319651, 53.878680117, 0.0 ], [ 27.906291632, 53.878534444, 0.0 ], [ 27.906122713, 53.878545786, 0.0 ], [ 27.906114076, 53.878500881, 0.0 ], [ 27.905462657, 53.878544619, 0.0 ] ] ] } },
    { "type": "Feature", "properties": { "ObjectName": "ОТДЕЛЬНЫЕ СТРОЕН", "LayerName": "houses", "ObjectCode": "44200000", "HOUSE_N": "7", "STREET": "Гризодубовой", "KORPUS": null, "TYP_COD": 19.0, "COUNTRY": "Беларусь", "STATE": "Минская область", "CITY": "Минск", "ST_CODE": 107.0, "NAME": "7", "Count": null }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 27.905847792, 53.879747604, 0.0 ], [ 27.906136994, 53.879723525, 0.0 ], [ 27.906043093, 53.879329787, 0.0 ], [ 27.906603129, 53.879283157, 0.0 ], [ 27.906563811, 53.879118298, 0.0 ], [ 27.905714579, 53.879189006, 0.0 ], [ 27.905847792, 53.879747604, 0.0 ] ] ] } },
    { "type": "Feature", "properties": { "ObjectName": "ОТДЕЛЬНЫЕ СТРОЕН", "LayerName": "houses", "ObjectCode": "44200000", "HOUSE_N": "3", "STREET": "Гризодубовой", "KORPUS": null, "TYP_COD": 19.0, "COUNTRY": "Беларусь", "STATE": "Минская область", "CITY": "Минск", "ST_CODE": 107.0, "NAME": "3", "Count": null }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 27.908054053, 53.879564354, 0.0 ], [ 27.907919038, 53.879005908, 0.0 ], [ 27.907070038, 53.879077567, 0.0 ], [ 27.907109881, 53.879242382, 0.0 ], [ 27.907669765, 53.879195126, 0.0 ], [ 27.907764931, 53.879588758, 0.0 ], [ 27.908054053, 53.879564354, 0.0 ] ] ] } },
    Последний раз редактировалось Punk_pw; 05.07.2018 в 08:50.

Похожие темы

  1. С чего начинать изучать Java ?
    от Lamrock в разделе IT
    Ответов: 10
    Последнее сообщение: 24.07.2016, 14:11

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •