命令行工具`o2json`的使用简介

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-,此程序将输出到标准输出, 然后你可以将输出通过管道传递给其他程序。

file

京ICP备13031296号-4