JSON: Напишите программу 2

Сообщения
1 471
Реакции
271
Сайт
tehadm.ru
Данная задача ориентирована на реальную работу с данными в формате JSON. Для решения мы будем использовать справочник ОКВЭД (Общероссийский классификатор видов экономической деятельности), который был размещен на web-портале data.gov.ru.

Необходимая вам информация о структуре данных содержится в файле structure-20190514T0000.json, а сами данные, которые вам потребуется декодировать, содержатся в файле data-20190514T0100.json. Файлы размещены в нашем репозитории на github.com.

Для того, чтобы показать, что вы действительно смогли декодировать документ вам необходимо в качестве ответа записать сумму полей global_id всех элементов, закодированных в файле.
 

Вложения

  • awesomeProject1.zip
    294,3 КБ · Просмотры: 0
C-подобный:
package main

import (
    "encoding/json"
    "fmt"
    "io"
    "os"
)

type Global struct {
    Id int64 `json:"global_id"`
}

func main() {

    file, err := os.Open("d://Проекты//Go//awesomeProject1//data-20190514T0100.json")
    if err != nil {
        panic(err)
    }

    data, err := io.ReadAll(file)
    if err != nil {
        panic(err)
    }

    var Base []Global
    if err := json.Unmarshal(data, &Base); err != nil {
        panic(err)
    }

    var sum int64 = 0
    for _, element := range Base {
        el := element.Id
        sum += el
    }

    fmt.Println(sum)
}
 
C-подобный:
package main

import (
    "encoding/json"
    "fmt"
    "os"
)

type OKVED struct {
    GlobalId       int    `json:"global_id"`
    SystemObjectId string `json:"system_object_id"`
    SignatureDate  string `json:"signature_date"`
    Razdel         string `json:"Razdel"`
    Kod            string `json:"Kod"`
    Name           string `json:"Name"`
    Idx            string `json:"Idx"`
}

// Для того, чтобы показать, что вы действительно смогли декодировать документ вам необходимо
// в качестве ответа записать сумму полей global_id всех элементов, закодированных в файле.

func main() {
    f, _ := os.Open("./data-20190514T0100.json")

    var okved []OKVED
    dec := json.NewDecoder(f)
    dec.Decode(&okved)

    var res int
    for _, property := range okved {
       res += property.GlobalId
    }
    fmt.Println(res)
}
 
Назад
Верх Низ