Skip to main content

Không cần jq nếu đã có python/ruby

jq trở thành công cụ "làm tất cả" với các sysadmin. Trong khi jq được dùng để "query JSON" - truy cập dữ liệu trong 1 đoạn JSON thì nó cũng được dùng để kiểm tra syntax của 1 đoạn JSON.

JQ là gì

$ whatis jq

jq (1)               - Command-line JSON processor
 

Photo by Thanh Soledas on Unsplash
 

Nhưng nếu máy đã có python/ruby, hay các ngôn ngữ trang bị sẵn stdlib JSON, sẽ không cần phải cài gì thêm cả:

File bad.json ví dụ, thử dùng mắt thường tìm xem nó sai ở đâu:

{
  "name": "@exercism/typescript",
  "description": "Exercism exercises in Typescript.",
  "private": true,
  "repository": {
    "type": "git",
    "url": "https://github.com/exercism/typescript"
  },
  "devDependencies": {
  },
}

Cả 3 công cụ sau đều trả về exit code khác 0 (tức không thành công, hay "bị  lỗi")

$ cat bad.json | jq ; echo $?
parse error: Expected another key-value pair at line 11, column 1
4
$ cat bad.json | python3 -m json.tool ; echo $?
Expecting property name enclosed in double quotes: line 11 column 1 (char 231)
1
$ cat bad.json | ruby -rjson -e 'JSON.load(STDIN)' ; echo $?
Traceback (most recent call last):
        3: from -e:1:in `<main>'
        2: from /home/vagrant/.rvm/rubies/ruby-2.7.0/lib/ruby/2.7.0/json/common.rb:335:in `load'
        1: from /home/vagrant/.rvm/rubies/ruby-2.7.0/lib/ruby/2.7.0/json/common.rb:156:in `parse'
/home/vagrant/.rvm/rubies/ruby-2.7.0/lib/ruby/2.7.0/json/common.rb:156:in `parse': 783: unexpected token at '{ (JSON::ParserError)
  "name": "@exercism/typescript",
  "description": "Exercism exercises in Typescript.",
  "private": true,
  "repository": {
    "type": "git",
    "url": "https://github.com/exercism/typescript"
  },
  "devDependencies": {
  },
}
'
1


Khi có trong tay những ngôn ngữ lập trình hạng xịn, trang bị tận răng như Python hay Ruby, bạn có thể làm rất rất nhiều thứ, trong 1 2 dòng, mà không cần cài thêm gì. Kiểm tra syntax JSON cũng không phải ngoại lệ.


Happy coding.

Tham khảo 

https://pp.pymi.vn/article/pycli/

Hết.

HVN at "học python tại PyMi" https://pymi.vn and https://www.familug.org 

Comments

Popular posts from this blog

Tài liệu và hướng dẫn học Python

Để tiết kiệm thời gian, tốt nhất là đi học PyMI Updated: 130617 Sau đây là các tài liệu khuyên dùng: Vì nhiều lý do, nên học python2.7 tại thời điểm hiện tại (giờ là tháng 6/2013 - muốn biết tại sao thì tự tìm hiểu) python 3.5+ (giờ là tháng 2/2017) Chuẩn bị: 1. biết bật tắt máy 2. biết cài python 3. tập gõ 10 ngón - gõ 2 ngón hay 1 ngón cũng không sao, nhưng 10 ngón là cách dễ nhất để gõ nhanh nhất. Tài liệu - Nên dùng tài liệu tại trang chủ của Python làm chính, tham khảo thêm các tài liệu khác tại http://www.familug.org/2016/12/free-ebook.html Căn bản, mới học 1.1 Python PyMI.vn https://pymi.vn/tutorial/ 1.2. Python offical tutorial kết hợp làm bài tập trên HackerRank  (đề bài bằng tiếng Anh, nhưng Google translate 1 lúc cũng ra vì có nhiều ví dụ mẫu đi kèm). Học viên của Pymi.vn có rất nhiều học viên đã tự học với Learn Python the hard way nhưng chưa thấy ai thành công cả. Hai link dưới nên đọc sau khi đã nắm được những phần cơ bản của ngôn ngữ pytho...

The PyMiers

New FAMILUG