Daniel
Daniel

Reputation: 23

How to display JSON hash content using rails

Hello I'm new to ruby rails and I'm trying to hardcode to display into my browser the "searched_count" from the phrase "java" from my json hash that I got using an url, which is the following

{
"results": [
    {
        "_class": "search_log",
        "id": 88,
        "phrase": "java",
        "searched_count": 3758269,
        "url": "/courses/search/?q=java"
    },
    {
        "_class": "search_log",
        "id": 296,
        "phrase": "javascript",
        "searched_count": 2385833,
        "url": "/courses/search/?q=javascript"
    },
    {
        "_class": "search_log",
        "id": 642,
        "phrase": "java programming",
        "searched_count": 371310,
        "url": "/courses/search/?q=java+programming"
    },
    {
        "_class": "search_log",
        "id": 6192,
        "phrase": "java for complete beginners",
        "searched_count": 193568,
        "url": "/courses/search/?q=java+for+complete+beginners"
    },
    {
        "_class": "course",
        "id": 478878,
        "title": "Java Maven: Introduccion paso a paso para no expertos",
        "url": "/java-maven/",
        "type_label": "curso"
    },
    {
        "_class": "course",
        "id": 1325394,
        "title": "Java a Profundidad - Temas Avanzados y Desarrollo Web.",
        "url": "/java-a-profundidad/",
        "type_label": "curso"
    },
    {
        "_class": "course",
        "id": 1187500,
        "title": "Java EE 7 & Frameworks - JSF2, Spring 4, Struts 2 y EJB3",
        "url": "/java-ee-7-frameworks-jsf2-spring-4-struts-2-y-ejb3/",
        "type_label": "curso"
    },
    {
        "_class": "course",
        "id": 490376,
        "title": "Java para Administradores de Sistemas",
        "url": "/java-sysadmin/",
        "type_label": "curso"
    },
    {
        "_class": "user",
        "id": 28097854,
        "title": "Javascript Lab",
        "name": "Javascript",
        "display_name": "Javascript Lab",
        "url": "/user/javascript-lab/",
        "type_label": "instructor"
    },
    {
        "_class": "user",
        "id": 17677946,
        "title": "Lara Javalyn",
        "name": "Lara",
        "display_name": "Lara Javalyn",
        "url": "/user/lara-javalyn/",
        "type_label": "instructor"
    },
    {
        "_class": "user",
        "id": 7708594,
        "title": "Ashay Javadekar",
        "name": "Ashay",
        "display_name": "Ashay Javadekar",
        "url": "/user/ashayjavadekar/",
        "type_label": "instructor"
    },
    {
        "_class": "user",
        "id": 23997368,
        "title": "Alex Javad",
        "name": "Alex",
        "display_name": "Alex Javad",
        "url": "/user/alex-javad-2/",
        "type_label": "instructor"
    }
]
}

I have two methods to try to accomplish this:

 require 'sinatra'
 require 'net/http'
 require 'json'
 require 'openssl'

 OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE

def get_search_count(term)

url = 'https://www.udemy.com/api-2.0/search-suggestions?q=java'
uri = URI(url)
response = Net::HTTP.get(uri)
 return JSON.parse(response)

end


get '/' do
@result = get_search_count "java"
@searchedCount = @result["results"][0]["searched_count"]
"Searched count: #{@searched_count}"

end

When I load my localhost all I get is the phrase "Searched count:" with nothing following, any help identifying my mistakes is greatly appreciated thanks in advance!

Upvotes: 0

Views: 49

Answers (1)

minh
minh

Reputation: 181

You have a typo in the string. You're reading @searched_count rather than @searchedCount

Upvotes: 3

Related Questions