我有一个像这样的json文件:
{
"data": "12-14.02.2013",
"uwagi": ["Pierwsza","Druga","Trzecia"],
"tytul": "Kolokwium 1",
"przedmiot": "Muzykologia",
"questions" : [
{
"punkty": 2,
"pytanie" : "Czy lubi Pan reggae?",
"odpowiedz" : "Tak, bardzo",
"verbatim" : "if (a){b=5}"
},
{
"punkty": 3,
"pytanie" : "Czy lubi Pan hip-hop?",
"odpowiedz" : "Nieszczególnie"
},
{
"punkty": 5,
"pytanie" : "Czy lubi Pan disco polo?",
"odpowiedz" : "Nie"
}]
}
和像这样的ruby代码:
require 'json'
file = open("pytania.json")
json = file.read
parsed = JSON.parse(json)
questionsArr = parsed["questions"]
questionsArr.shuffle
puts questionsArr
questionsArr在.shuffle
之后没有排序我尝试了.sort_by {rand}并改组解析["问题"],但没有成功。
出了什么问题?
答案 0 :(得分:5)
你需要shuffle!
数组!
require 'json'
file = open("pytania.json")
json = file.read
parsed = JSON.parse(json)
questionsArr = parsed["questions"]
questionsArr.shuffle!
puts questionsArr
单独的方法shuffle
将返回一个新的混洗数组,并且不会更改原始的questionsArr
数组。因此,您应该使用将改变原始shuffle!
数组的爆炸questionsArr
方法,如上所示,或者将shuffle
的结果放入新变量中并使用它,如下所示:
require 'json'
file = open("test.json")
json = file.read
parsed = JSON.parse(json)
questionsArr = parsed["questions"]
shuffledArr = questionsArr.shuffle
puts shuffledArr