越来越多的配置都是使用 json 的格式,当我们修改好,最好是进行一下 json 合法性校验。
我们可以使用下面的脚本进行校验。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| #!/usr/bin/env ruby
# encoding: utf-8
require 'json'
file = ARGV[0]
def is_json_valid(value)
result = JSON.parse(value)
result.is_a?(Hash) || result.is_a?(Array)
rescue JSON::ParserError, TypeError
false
end
result = is_json_valid(File.open(file).read)
puts "json is valid(#{result})"
|
进行一些验证
验证错误文件1 (非json 文件)
1
2
3
4
| cat /tmp/bad_json.json
123
checkJson.rb /tmp/bad_json.json
json is valid(false)
|
验证错误文件2 (json文件,但是引号错误)
1
2
3
4
5
6
7
| cat /tmp/bad_json_1.json
{
'aaa': "b"
}
checkJson.rb /tmp/bad_json_1.json
json is valid(false)
|
验证错误文件3(空文件)
1
2
3
4
| cat /tmp/empty.txt
checkJson.rb /tmp/empty.txt
json is valid(false)
|
验证正确文件1 (空JsonObject)
1
2
3
4
| cat /tmp/good_json_1.json
{}
checkJson.rb /tmp/good_json_1.json
json is valid(true)
|
验证正确文件2(空 JsonArray)
1
2
3
4
| cat /tmp/good_json_2.json
[]
checkJson.rb /tmp/good_json_2.json
json is valid(true)
|
验证正确文件3 (正常数据)
1
2
3
4
5
6
7
| cat /tmp/good_json_3.json
{
"key": "value"
}
checkJson.rb /tmp/good_json_3.json
json is valid(true)
|