Cum pot accesa o valoare dintr-un șir JSON?

Am o variabilă. Când fac pune var_name primesc acest hash:

"{\"numConnections\": 163}"

Dar când încerc să obțin numărul 163 din valoarea numConnections nu funcționează. Iată ce încerc:

connections = temp_var["\"numConnections\""]
puts connections.inspect

sau:

connections = temp_var["numConnections"]
puts connections.inspect

ambele care nu funcționează la fel.

Ai idee cum să extragi asta de acolo?

0
Hmmm, văd ... un punct bun. Există o cale ușoară de extragere a valorii făcând o anumită funcție menită să se ocupe de json?
adăugat autor GeekedOut, sursa
@dominikh da, care a făcut-o! Mulțumiri! Dacă doriți, puteți să o puneți ca răspuns și voi accepta.
adăugat autor GeekedOut, sursa
Asta nu arata ca un hash, seamana cu un sir. Ce se întoarce var_name.class ?
adăugat autor Casper, sursa
Imprimați tipul de temp_var, sunt sigur că nu este vorba de hash, ci de un șir de caractere. Se pare că mi-a fost JSON?
adăugat autor Dominik Honnef, sursa
necesită "json"; hash = JSON.parse (variabila dvs.); hash [ "numConnections"]
adăugat autor Dominik Honnef, sursa

1 răspunsuri

Dacă aveți un șir JSON, trebuie să îl parsezi într-o hash înainte de al putea folosi pentru a accesa cheile și valorile sale într-un mod asemănător. Luați în considerare această sesiune IRB:

1.9.3p194 :001 > require 'json'
 => true
1.9.3p194 :002 > temp_var = "{\"numConnections\": 163}"
 => "{"numConnections": 163}"
1.9.3p194 :003 > temp_var.class
 => String 
1.9.3p194 :004 > JSON.parse(temp_var)
 => {"numConnections"=>163}
1.9.3p194 :005 > JSON.parse(temp_var)['numConnections']
 => 163
0
adăugat
JavaScript, România - Moldova
JavaScript, România - Moldova
328 participanți

Comunitatea Română JavaScript: github.com/js-ro Pentru confort, opriți notificările. Parteneri: @node_ro, @php_ro, @python_ro, @seo_ro, @RomaniaGroup, @ai_ro, @Grupuri_IT Offtop: @holywars_ro Joburi: @js_jobs_ro Sponsored with ❤️ by ciupacabra.com