Прочтите Json с полями функций - PullRequest
0 голосов
/ 19 июня 2020

У меня следующая проблема. Я пытаюсь прочитать файл Json, но не получаю желаемого результата. У меня есть следующие данные.

Я хотел бы прочитать функции, но я обнаружил ошибку где-то.

Я получаю сообщение об ошибке при чтении: Предупреждение: недопустимое смещение строки ' features '

Вывод

Array
(
    [objectIdFieldName] => OBJECTID
    [uniqueIdField] => Array
        (
            [name] => OBJECTID
            [isSystemMaintained] => 1
        )

    [globalIdFieldName] => 
    [geometryProperties] => Array
        (
            [shapeAreaFieldName] => Shape__Area
            [shapeLengthFieldName] => Shape__Length
            [units] => esriMeters
        )

    [geometryType] => esriGeometryPolygon
    [spatialReference] => Array
        (
            [wkid] => 4326
            [latestWkid] => 4326
        )

    [fields] => Array
        (
            [0] => Array
                (
                    [name] => GEN
                    [type] => esriFieldTypeString
                    [alias] => GEN
                    [sqlType] => sqlTypeOther
                    [length] => 33
                    [domain] => 
                    [defaultValue] => 
                )

            [1] => Array
                (
                    [name] => cases
                    [type] => esriFieldTypeInteger
                    [alias] => Anzahl Fälle
                    [sqlType] => sqlTypeOther
                    [domain] => 
                    [defaultValue] => 
                )

            [2] => Array
                (
                    [name] => deaths
                    [type] => esriFieldTypeInteger
                    [alias] => Anzahl Todesfälle
                    [sqlType] => sqlTypeOther
                    [domain] => 
                    [defaultValue] => 
                )

        )

    [features] => Array
        (
            [0] => Array
                (
                    [attributes] => Array
                        (
                            [GEN] => Celle
                            [cases] => 220
                            [deaths] => 15
                        )

                    ...........

Мой код

$url = "https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/RKI_Landkreisdaten/FeatureServer/0/query?where=GEN%20%3D%20%27CELLE%27&outFields=GEN,cases,deaths&outSR=4326&f=json";
$json = file_get_contents($url);
$data = json_decode($json,true); //decode json result as array and thenloop it
print '<pre>';
print_r($data);
foreach($data as $row){
echo $row['features']->$row['attributes']->$row['GEN'];
}

Где я ошибаюсь в чтении? Нужно только прочитать то, что указано в скобках, верно?

Итак, на самом деле features-> attributes-> Gen, чтобы получить запрос GEN

Ответы [ 2 ]

1 голос
/ 19 июня 2020

Попробуем перейти на это.

foreach($data as $row){
   echo $row['features'][0]['attributes']['GEN'];
}
0 голосов
/ 19 июня 2020

Извините, это моя вина, когда кажется, что ваш вопрос не совсем понятен.

С атрибутом GEN вы не используете l oop для получения этого значения.

Если вы хотите получить GEN, только ваш код должен быть таким.

$url = "https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/RKI_Landkreisdaten/FeatureServer/0/query?where=GEN%20%3D%20%27CELLE%27&outFields=GEN,cases,deaths&outSR=4326&f=json";
$json = file_get_contents($url);
$data = (array) json_decode($json, true); //decode json result as array and thenloop it
print '<pre>';
print_r($data);
echo $data['features']['attributes']['GEN'];

// foreach($data as $row){
// echo $row['features']->$row['attributes']->$row['GEN'];
// }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...