Help me met het schrijven van Ruby code voor het verwerken van JSON-data
description
Met deze prompt krijg je een specifiek afgestemd Ruby script om JSON-data efficiënt en betrouwbaar te verwerken, inclusief robuuste foutafhandeling. Dit bespaart tijd en voorkomt veelvoorkomende fouten bij het manueel schrijven van code voor complexe JSON-structuren.
prompt
Help me een Ruby script te schrijven dat JSON-data verwerkt volgens de volgende specificaties: <beschrijf de JSON structuur en de gewenste bewerkingen>. Geef aan welke velden ik moe ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Hier is een voorbeeld van een Ruby-script dat voldoet aan jouw specificaties:
```ruby
require 'json'
# JSON data
json_data = '{"name": "Jan", "age": 30, "email": "jan@example.com"}'
begin
# Parse de JSON-data
data = JSON.parse(json_data)
# Controleer of de vereiste velden aanwezig zijn
unless data.key?('name') && data.key?('age')
raise "Ontbrekend 'name' of 'age' veld in de data."
end
# Extrait de velden
naam = data['name']
leeftijd = data['age']
# Controleer of 'age' een getal is
unless leeftijd.is_a?(Numeric)
raise "'age' veld is geen numeriek getal."
end
# Verhoog leeftijd met 5
nieuwe_leeftijd = leeftijd + 5
# Resultaat weergeven
puts "Naam: #{naam}"
puts "Leeftijd na verhoging: #{nieuwe_leeftijd}"
rescue JSON::ParserError
puts "Ongeldige JSON-data."
rescue => e
puts "Fout: #{e}"
end
```
**Wat doet dit script?**
- Het parseert de JSON-gegevens.
- Controleert of de velden 'name' en 'age' aanwezig zijn.
- Haalt deze velden op.
- Verhoogt de leeftijd met 5.
- Geeft een foutmelding als de JSON ongeldig is of als de vereiste velden ontbreken of ongepast zijn.
**Aanpassingen:**
- Vervang de waarde van `json_data` door jouw daadwerkelijke JSON-gegevens.
- Het script is robuust en geeft duidelijke foutmeldingen bij problemen.
provider: deepseek
model: deepseek-chat
Hier is een robuust Ruby script dat aan je specificaties voldoet:
```ruby
require 'json'
def verwerk_gegevens(json_data)
begin
# Parse JSON data
data = JSON.parse(json_data)
# Controleer verplichte velden
unless data.is_a?(Hash)
raise "Ongeldige JSON-structuur: verwacht een object"
end
# Verplichte velden controleren
unless data.key?('name')
raise "Veld 'name' ontbreekt in de data"
end
unless data.key?('age')
raise "Veld 'age' ontbreekt in de data"
end
# Type checks
unless data['name'].is_a?(String)
raise "Veld 'name' moet een string zijn"
end
unless data['age'].is_a?(Integer)
raise "Veld 'age' moet een integer zijn"
end
# Gegevens extraheren en transformeren
naam = data['name']
leeftijd = data['age'] + 5
# Resultaat teruggeven
{
naam: naam,
leeftijd: leeftijd,
status: 'succes'
}
rescue JSON::ParserError => e
{
status: 'fout',
foutmelding: "Ongeldige JSON: #{e.message}"
}
rescue => e
{
status: 'fout',
foutmelding: e.message
}
end
end
# Voorbeeld gebruik:
json_input = '{"name": "Jan", "age": 30, "email": "jan@example.com"}'
resultaat = verwerk_gegevens(json_input)
if resultaat[:status] == 'succes'
puts "Naam: #{resultaat[:naam]}"
puts "Leeftijd + 5: #{resultaat[:leeftijd]}"
else
puts "Fout: #{resultaat[:foutmelding]}"
end
```
**Velden die worden verwerkt:**
- ✅ **name** - geëxtraheerd als string
- ✅ **age** - geëxtraheerd en getransformeerd (+5)
- ❌ **email** - niet verwerkt (niet opgegeven in requirements)
**Robuuste features:**
- ✅ JSON parsing foutafhandeling
- ✅ Ontbrekende velden detectie
- ✅ Type validatie (name moet string, age moet integer)
- ✅ Duidelijke foutmeldingen
- ✅ Gestructureerde error responses
**Gebruik:**
```ruby
# Werkt met je voorbeeld:
json_input = '{"name": "Jan", "age": 30, "email": "jan@example.com"}'
# Werkt ook met andere geldige input:
json_input2 = '{"name": "Piet", "age": 25}'
# Geeft duidelijke fouten bij problemen:
json_input3 = '{"name": "Klaas"}' # age ontbreekt
json_input4 = 'ongeldige json' # parse error
json_input5 = '{"name": 123, "age": 30}' # name niet string
```