我有一个像这样的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"
}]
}
Run Code Online (Sandbox Code Playgroud)
和像这样的ruby代码:
require 'json'
file = open("pytania.json")
json = file.read
parsed = JSON.parse(json)
questionsArr = parsed["questions"]
questionsArr.shuffle
puts questionsArr
Run Code Online (Sandbox Code Playgroud)
questionsArr在.shuffle之后没有排序
我试过.sort_by {rand}并改组解析["问题"],没有成功.
怎么了?
你需要shuffle!阵列!
require 'json'
file = open("pytania.json")
json = file.read
parsed = JSON.parse(json)
questionsArr = parsed["questions"]
questionsArr.shuffle!
puts questionsArr
Run Code Online (Sandbox Code Playgroud)
shuffle单独的方法将返回一个新的混洗数组,不会更改原始questionsArr数组.所以你应该使用shuffle!将改变原始questionsArr数组的bang 方法,如上所示,或者将结果shuffle放在一个新变量中并像这样使用它:
require 'json'
file = open("test.json")
json = file.read
parsed = JSON.parse(json)
questionsArr = parsed["questions"]
shuffledArr = questionsArr.shuffle
puts shuffledArr
Run Code Online (Sandbox Code Playgroud)