o2json
是一个将 LPC 保存文件转换为 JSON 的工具,结合 json2o
,它能让你使用 JSON 工具来处理 LPC 保存文件。
使用方法
./o2json [选项] o文件 json文件
注意事项
如果 o文件
为 -
,此程序将从标准输入读取;如果 json文件
为 -
,此程序将输出到标准输出,
然后你可以将输出通过管道传递给其他程序。
选项
选项 | 描述 |
---|---|
-pretty |
以换行和缩进的方式打印 JSON |
-ascii |
以 \uXXXX 转义格式打印所有非 ASCII 字符。 |
JSON 格式
JSON 输出是一个包含以下字段的对象:
{
"program_name": "program_name",
"variables": [ variable_object ]
}
variable_object
是一个包含以下字段的对象:
{
"name": "variable_name",
"value": svalue
}
svalue
是一个包含以下字段的对象:
{
"type": type,
"value": value
}
type
是一个字符串,它可以是以下值之一:
"int"
、"float"
、"string"
、"array"
、"mapping"
、"buffer"
value
可以是一个数字、一个字符串,或者是 svalue
对象的数组。
完整示例
玩家存档原始文件内容:
#/clone/user/user.c
killer ({})
want_kills ({})
dbase (["qi":100,"last_read_news":1691820345,"per":20,"env":(["auto_regenerate":1,"auto_get":1,"wimpy":60,"no_autoultra":1,]),"shen":0,"str":14,"title":"普通百姓","last_on":1691824213,"startroom":"/d/register/yanluodian","shen_type":0,"con":14,"water":240,"eff_qi":100,"unit":"位","max_qi":100,"registered":0,"int":14,"can_speak":1,"race":"人类","mud_age":6858,"name":"小泥巴","dex":14,"eff_jing":100,"potential":100,"food":240,"channels":({"chat","rumor","party","bill","sing","family","rultra","sys",}),"sec_id":"$6$W4GwPAvRpSlWmFZr$sW05XHkc/26kDH2IAsrMmdHaxC3UBn0OIX.HlH88LwVWbuiYSBC.qWxnfRiueeF7GDloTRbCI2jv5NzVKu8AG0","limbs":({"头部","颈部","胸口","后心","左肩","右肩","左臂","右臂","左手","右手","腰间","小腹","左腿","右腿","左脚","右脚",}),"id":"mudren","purename":"泥巴","jing":100,"gender":"男性","surname":"小","last_save":1751452454,"state":(["go":5,]),"max_jing":100,"attitude":"peaceful","cwf":"/cmds/test/test_tls.c","birthday":1691820345,"age":14,])
autoload ({})
toDoList ([])
solved ({})
my_depot ([])
ban_say_msg ""
.\o2json.exe -pretty .\data\user\m\mudren.o mudren.json
输出结果:
{
"program_name": "#/clone/user/user.c",
"variables": [
{
"name": "killer",
"value": {
"type": "array",
"value": []
}
},
{
"name": "want_kills",
"value": {
"type": "array",
"value": []
}
},
{
"name": "dbase",
"value": {
"type": "mapping",
"value": [
{
"key": {
"type": "string",
"value": "age"
},
"value": {
"type": "number",
"value": 14
}
},
{
"key": {
"type": "string",
"value": "birthday"
},
"value": {
"type": "number",
"value": 1691820345
}
},
{
"key": {
"type": "string",
"value": "cwf"
},
"value": {
"type": "string",
"value": "/cmds/test/test_tls.c"
}
},
{
"key": {
"type": "string",
"value": "attitude"
},
"value": {
"type": "string",
"value": "peaceful"
}
},
{
"key": {
"type": "string",
"value": "max_jing"
},
"value": {
"type": "number",
"value": 100
}
},
{
"key": {
"type": "string",
"value": "state"
},
"value": {
"type": "mapping",
"value": [
{
"key": {
"type": "string",
"value": "go"
},
"value": {
"type": "number",
"value": 5
}
}
]
}
},
{
"key": {
"type": "string",
"value": "last_save"
},
"value": {
"type": "number",
"value": 1751452454
}
},
{
"key": {
"type": "string",
"value": "surname"
},
"value": {
"type": "string",
"value": "小"
}
},
{
"key": {
"type": "string",
"value": "gender"
},
"value": {
"type": "string",
"value": "男性"
}
},
{
"key": {
"type": "string",
"value": "jing"
},
"value": {
"type": "number",
"value": 100
}
},
{
"key": {
"type": "string",
"value": "purename"
},
"value": {
"type": "string",
"value": "泥巴"
}
},
{
"key": {
"type": "string",
"value": "id"
},
"value": {
"type": "string",
"value": "mudren"
}
},
{
"key": {
"type": "string",
"value": "limbs"
},
"value": {
"type": "array",
"value": [
{
"type": "string",
"value": "头部"
},
{
"type": "string",
"value": "颈部"
},
{
"type": "string",
"value": "胸口"
},
{
"type": "string",
"value": "后心"
},
{
"type": "string",
"value": "左肩"
},
{
"type": "string",
"value": "右肩"
},
{
"type": "string",
"value": "左臂"
},
{
"type": "string",
"value": "右臂"
},
{
"type": "string",
"value": "左手"
},
{
"type": "string",
"value": "右手"
},
{
"type": "string",
"value": "腰间"
},
{
"type": "string",
"value": "小腹"
},
{
"type": "string",
"value": "左腿"
},
{
"type": "string",
"value": "右腿"
},
{
"type": "string",
"value": "左脚"
},
{
"type": "string",
"value": "右脚"
}
]
}
},
{
"key": {
"type": "string",
"value": "sec_id"
},
"value": {
"type": "string",
"value": "$6$W4GwPAvRpSlWmFZr$sW05XHkc/26kDH2IAsrMmdHaxC3UBn0OIX.HlH88LwVWbuiYSBC.qWxnfRiueeF7GDloTRbCI2jv5NzVKu8AG0"
}
},
{
"key": {
"type": "string",
"value": "channels"
},
"value": {
"type": "array",
"value": [
{
"type": "string",
"value": "chat"
},
{
"type": "string",
"value": "rumor"
},
{
"type": "string",
"value": "party"
},
{
"type": "string",
"value": "bill"
},
{
"type": "string",
"value": "sing"
},
{
"type": "string",
"value": "family"
},
{
"type": "string",
"value": "rultra"
},
{
"type": "string",
"value": "sys"
}
]
}
},
{
"key": {
"type": "string",
"value": "food"
},
"value": {
"type": "number",
"value": 240
}
},
{
"key": {
"type": "string",
"value": "potential"
},
"value": {
"type": "number",
"value": 100
}
},
{
"key": {
"type": "string",
"value": "eff_jing"
},
"value": {
"type": "number",
"value": 100
}
},
{
"key": {
"type": "string",
"value": "dex"
},
"value": {
"type": "number",
"value": 14
}
},
{
"key": {
"type": "string",
"value": "name"
},
"value": {
"type": "string",
"value": "小泥巴"
}
},
{
"key": {
"type": "string",
"value": "mud_age"
},
"value": {
"type": "number",
"value": 6858
}
},
{
"key": {
"type": "string",
"value": "race"
},
"value": {
"type": "string",
"value": "人类"
}
},
{
"key": {
"type": "string",
"value": "can_speak"
},
"value": {
"type": "number",
"value": 1
}
},
{
"key": {
"type": "string",
"value": "int"
},
"value": {
"type": "number",
"value": 14
}
},
{
"key": {
"type": "string",
"value": "registered"
},
"value": {
"type": "number",
"value": 0
}
},
{
"key": {
"type": "string",
"value": "max_qi"
},
"value": {
"type": "number",
"value": 100
}
},
{
"key": {
"type": "string",
"value": "unit"
},
"value": {
"type": "string",
"value": "位"
}
},
{
"key": {
"type": "string",
"value": "eff_qi"
},
"value": {
"type": "number",
"value": 100
}
},
{
"key": {
"type": "string",
"value": "water"
},
"value": {
"type": "number",
"value": 240
}
},
{
"key": {
"type": "string",
"value": "con"
},
"value": {
"type": "number",
"value": 14
}
},
{
"key": {
"type": "string",
"value": "shen_type"
},
"value": {
"type": "number",
"value": 0
}
},
{
"key": {
"type": "string",
"value": "startroom"
},
"value": {
"type": "string",
"value": "/d/register/yanluodian"
}
},
{
"key": {
"type": "string",
"value": "last_on"
},
"value": {
"type": "number",
"value": 1691824213
}
},
{
"key": {
"type": "string",
"value": "title"
},
"value": {
"type": "string",
"value": "普通百姓"
}
},
{
"key": {
"type": "string",
"value": "str"
},
"value": {
"type": "number",
"value": 14
}
},
{
"key": {
"type": "string",
"value": "shen"
},
"value": {
"type": "number",
"value": 0
}
},
{
"key": {
"type": "string",
"value": "env"
},
"value": {
"type": "mapping",
"value": [
{
"key": {
"type": "string",
"value": "no_autoultra"
},
"value": {
"type": "number",
"value": 1
}
},
{
"key": {
"type": "string",
"value": "wimpy"
},
"value": {
"type": "number",
"value": 60
}
},
{
"key": {
"type": "string",
"value": "auto_get"
},
"value": {
"type": "number",
"value": 1
}
},
{
"key": {
"type": "string",
"value": "auto_regenerate"
},
"value": {
"type": "number",
"value": 1
}
}
]
}
},
{
"key": {
"type": "string",
"value": "per"
},
"value": {
"type": "number",
"value": 20
}
},
{
"key": {
"type": "string",
"value": "last_read_news"
},
"value": {
"type": "number",
"value": 1691820345
}
},
{
"key": {
"type": "string",
"value": "qi"
},
"value": {
"type": "number",
"value": 100
}
}
]
}
},
{
"name": "autoload",
"value": {
"type": "array",
"value": []
}
},
{
"name": "toDoList",
"value": {
"type": "mapping",
"value": []
}
},
{
"name": "solved",
"value": {
"type": "array",
"value": []
}
},
{
"name": "my_depot",
"value": {
"type": "mapping",
"value": []
}
},
{
"name": "ban_say_msg",
"value": {
"type": "string",
"value": ""
}
}
]
}
json2o
是一个将 JSON 转换为 LPC 保存文件格式的工具,它仅接受由 o2json
生成的 JSON 格式。
使用方法
./json2o json_file o_file
注意事项
如果 json_file
为 -
,此程序将从标准输入读取;如果 o_file
为 -
,此程序将输出到标准输出,
然后你可以将输出通过管道传递给其他程序。