语法错误,意外':'期待输入结束

时间:2016-09-23 03:20:10

标签: ruby

  1. 帮我解释这段代码T_T为什么它会一直显示语法错误,意外':' exepcting输入结束数据库:{

    database: {
        total_car_price: 20000,
        stock_car_price: 20000,
        features: {
            rim: {
                '16' => 50,
                '15' => 30,
                '14' => 10
            },
            color: {
                'blue' => 0,
                'red'  => 0,
                'yellow' => 0
            },
            tint: {
                '100' => 80,
                '80' => 50,
                '50' => 0
            },
            seat: {
                'leather' => 500,
                'PVC' => 300
            }
        }
    }
    
    puts "Original price : #{database[:stock_car_price]}"
    
    database[:features].each do |feature, data|
        puts feature.upcase
        data.each do |option, extra_cost|
            puts "#{option} :: #{extra_cost}"
        end
        while true
            selection = gets.chomp
            if data.keys.include? selection #make it general that can accept string/integer
                database[:total_car_price] += data[selection]
                break
            else
                puts 'Incorrect selection!'
            end
        end
    end
    
    
    puts "Stock Price :: #{database[:stock_car_price]}"
    puts "Final Price :: #{database[:total_car_price]}"
    

1 个答案:

答案 0 :(得分:1)

你应该像这样解析json:

json = {
   database: {
    total_car_price: 20000,
    stock_car_price: 20000,
    features: {
        rim: {
            '16' => 50,
            '15' => 30,
            '14' => 10
        },
        color: {
            'blue' => 0,
            'red'  => 0,
            'yellow' => 0
        },
        tint: {
            '100' => 80,
            '80' => 50,
            '50' => 0
        },
        seat: {
            'leather' => 500,
            'PVC' => 300
        }
    }
}
}

parsed_json = JSON.parse(json.to_json)

puts "Original price : #{parsed_json['database']['stock_car_price']}"

以下是工作样本:

working code