一.JSON语法

各个参数意义:
1) 标识,类似自由变量,指定一个唯一标识,“|”号后面是此对象的存活时间(秒),-1表示永久,
不写存活时间默认是180秒,即180秒后,此标识的JSON对象会被释放。

2) 方法,有以下几种:
L  从文件加载,不要频繁使用,否则有性能问题!!!
S  保存到文件,不要频繁使用,否则有性能问题!!!
A  添加
E  赋值
C  清理
D  删除指定名称的子结点
P  解析给定的字符串
O  排序,格式:
   1) JSON 标识 O 是否按名称排序(0/1) 是否排序子结点(0/1)
Y  复制,格式:
   1) JSON 标识 Y 源标识 0    // 从“源标识”复制一份到“标识”
M  合并,格式:
   1) JSON 目标标识 M 源标识 0   // 0 不重复,重复项目将以“目标标识”为准,默认
   2) JSON 目标标识 M 源标识 1  // 1 不重复,重复项目将以“源标识”为准
   3) JSON 目标标识 M 源标识 2  // 2 可重复,将“源标识”项目追加至“标识”中

3) 名称,类型是字符串

4) 数值,有以下几种类型:
整数  12345678
字符串  普通字符串
布尔值  True|False
浮点数  1.367
日期时间 "2018-11-12 06:12:11" 或 "2018-11-12T06:12:11.123",“.”后面指的是毫秒
数组  ["string",100,null,true,false,123.4]
子对象  {"name":"ObjectName","value":"ObjectValue"}
注意:数值最好不要有空格,如果必须带空格,请使用双引号""包围起来以表示为一个参数

5) 取值的变量:
<$JSON(标识)JSON>    // 固定格式,JSON对象的字符串,单行
<$JSON(标识)FORMAT>    // 固定格式,JSON对象格式化后的字符串(换行)
<$JSON(标识)path>    // 某路径或名称下的数值

例:
#act
JSON myjson C
JSON myjson A 整数 12345
JSON myjson A 字符串 这是字符串...
JSON myjson A 布尔值 True
JSON myjson A 浮点数 2.532
JSON myjson E 日期时间 "2018-11-12 06:12:11"
JSON myjson E 数组 ["字符串",100,null,true,false,123.4]
JSON myjson E 对象 {"name":"Object_Name","value":"Object_Value"}
sendmsg 7 myjson格式化字符串是:<$JSON(myjson)FORMAT>
; 第一个位置以0开始
sendmsg 7 “数组”第二位置的值是:<$JSON(myjson)数组[1]>
; 保存到文件
JSON myjson S ..\QuestDiary\example.json


二.配套脚本

[@main]
JSON操作\ \ \

完整的格式:<$json(data)format> \ \

 整数:<$json(data)整数> \\\
 字符串:<$json(data)字符串> \\\

<设置/@设置值>  <删除key/@删除key>  <清除/@清除> <保存文件/@保存文件>


[@保存文件]
#act
json data s ..\questdiary\测试.json
sendmsg 5 save..ok 
break

[@清除]
#act
json data c 
sendmsg 5 clear..ok 
goto @main

[@删除key]
#act 
json data d 数组
goto @main
break

[@设置值]
#act
json data e 整数  12345
json data e 字符串  www.ttgame.net
json data e 小数 0.8
json data e 数组 [1,b,3,d]
json data e 对象 {"玩家名":<$username>,"等级":<$level>,"元宝数":<$gamegold>}
sendmsg 5  赋值成功
goto @main
break

 

评论提问