将Json转换为点表示法有很多用途,本文基于Python实现一个简单demo来转换。

{
    "vehicle": {
        "car": {
            "bmw": true,
            "audi": 1,
            "ford": "also good"
        },
        "truck": {
            "all": "cool"
        }
    }
}

转为:

$.vehicle.car.ford : also good
$.vehicle.car.bmw : True
$.vehicle.car.audi : 1
$.vehicle.truck.all : cool

代码:

#! /usr/bin/env python
import json
import pyperclip

def getKeys(val, old="$"):
    if isinstance(val, dict):
        for k in val.keys():
            getKeys(val[k], old + "." + str(k))
    elif isinstance(val, list):
        for i,k in enumerate(val):
            getKeys(k, old + "." + str(i))
    else:
        print("{} : {}".format(old,str(val)))

data = json.loads(pyperclip.paste())
getKeys(data)

参考:

https://techtldr.com/convert-json-to-dot-notation-with-python/