Как получить доступ к ключу, значение в json / ruby - PullRequest
1 голос
/ 31 октября 2019

У меня есть такой json-файл, и я пытаюсь отобразить другое значение в моем html:

{
    "testimonials": [
        {
            "office": "Test",
            "authors": "Benjamin",
        },
        {
            "office": "consultant",
            "authors": "Maxime ",
        },
        {
            "office": "DAF",
            "authors": "Alexandre",

        },
        {
            "office": "CEO",
            "authors": "Raphaël",
          },
        {
            "office": "Consultant",
            "authors": "Alexis",
        },
        {
            "office": "CEO,",
            "authors": "Sylvain",
        }
    ]
}

Может ли кто-нибудь помочь мне, например, получить доступ к отображению значения 'Alexis'

1 Ответ

1 голос
/ 31 октября 2019

Это недопустимый JSON из-за запятых в хэше. Если вы исправите запятые, уменьшите JSON, чтобы упростить работу с ним, и сохраните его в виде строки, то вы можете начать работать с ним в Ruby:

json = '{"testimonials":[{"office":"Test","authors":"Benjamin"},{"office":"consultant","authors":"Maxime "},{"office":"DAF","authors":"Alexandre"},{"office":"CEO","authors":"Raphaël"},{"office":"Consultant","authors":"Alexis"},{"office":"CEO,","authors":"Sylvain"}]}'

Теперь проанализируйте его в реальномОбъект Ruby:

hash = JSON.parse(json)
=> {
    "testimonials" => [
        [0] {
             "office" => "Test",
            "authors" => "Benjamin"
        },
        [1] {
             "office" => "consultant",
            "authors" => "Maxime "
        },
        [2] {
             "office" => "DAF",
            "authors" => "Alexandre"
        },
        [3] {
             "office" => "CEO",
            "authors" => "Raphaël"
        },
        [4] {
             "office" => "Consultant",
            "authors" => "Alexis"
        },
        [5] {
             "office" => "CEO,",
            "authors" => "Sylvain"
        }
    ]
}

Это хеш, содержащий массив хешей. Вы должны получить к нему доступ, используя стандартные методы для Hash и Array .

Начните с получения значения единственного ключа в хэше, который является массивом:

array = hash['testimonials']
=> [
    [0] {
         "office" => "Test",
        "authors" => "Benjamin"
    },
    [1] {
         "office" => "consultant",
        "authors" => "Maxime "
    },
    [2] {
         "office" => "DAF",
        "authors" => "Alexandre"
    },
    [3] {
         "office" => "CEO",
        "authors" => "Raphaël"
    },
    [4] {
         "office" => "Consultant",
        "authors" => "Alexis"
    },
    [5] {
         "office" => "CEO,",
        "authors" => "Sylvain"
    }
]

Вы указали, что хотите получить значение из индекса 4:

sub_hash = array[4]
=> {
     "office" => "Consultant",
    "authors" => "Alexis"
}

И хотите вернуть строку Alexis:

string = sub_hash['authors']
=> "Alexis"

Или сложите все в одну строку:

string = hash['testimonials'][4]['authors']
=> "Alexis"

Или еще одну более короткую строку:

JSON.parse(json)['testimonials'][4]['authors']
=> "Alexis"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...